Mercurial > cpython-lru_cache-weakref
diff Python/getargs.c @ 13108:68e57c5d1bec legacy-trunk
Vladimir Marangozov:
This patch fixes a problem on AIX with the signed int case code in
getargs.c, after Trent Mick's intervention about MIN/MAX overflow
checks. The AIX compiler/optimizer generates bogus code with the
default flags "-g -O" causing test_builtin to fail: int("10", 16) <>
16L. Swapping the two checks in the signed int code makes the problem
go away.
Also, make the error messages fit in 80 char lines in the
source.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Wed, 28 Jun 2000 23:53:56 +0000 |
| parents | 866365b44f23 |
| children | 916fb024ce94 |
line wrap: on
line diff
--- a/Python/getargs.c Wed Jun 28 23:46:07 2000 +0000 +++ b/Python/getargs.c Wed Jun 28 23:53:56 2000 +0000 @@ -473,12 +473,12 @@ return "integer<b>"; else if (ival < 0) { PyErr_SetString(PyExc_OverflowError, - "unsigned byte integer is less than minimum"); + "unsigned byte integer is less than minimum"); return "integer<b>"; } else if (ival > UCHAR_MAX) { PyErr_SetString(PyExc_OverflowError, - "unsigned byte integer is greater than maximum"); + "unsigned byte integer is greater than maximum"); return "integer<b>"; } else @@ -494,12 +494,12 @@ return "integer<h>"; else if (ival < SHRT_MIN) { PyErr_SetString(PyExc_OverflowError, - "signed short integer is less than minimum"); + "signed short integer is less than minimum"); return "integer<h>"; } else if (ival > SHRT_MAX) { PyErr_SetString(PyExc_OverflowError, - "signed short integer is greater than maximum"); + "signed short integer is greater than maximum"); return "integer<h>"; } else @@ -513,14 +513,14 @@ long ival = PyInt_AsLong(arg); if (ival == -1 && PyErr_Occurred()) return "integer<i>"; + else if (ival > INT_MAX) { + PyErr_SetString(PyExc_OverflowError, + "signed integer is greater than maximum"); + return "integer<i>"; + } else if (ival < INT_MIN) { PyErr_SetString(PyExc_OverflowError, - "signed integer is less than minimum"); - return "integer<i>"; - } - else if (ival > INT_MAX) { - PyErr_SetString(PyExc_OverflowError, - "signed integer is greater than maximum"); + "signed integer is less than minimum"); return "integer<i>"; } else
