From: Guido van Rossum Date: Wed, 28 Jun 2000 23:53:56 +0000 (+0000) Subject: Vladimir Marangozov: X-Git-Tag: v2.0b1~1323 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5e08cb8e50f5d63ba2c73c6eb678f7e442b89a3a;p=thirdparty%2FPython%2Fcpython.git 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. --- diff --git a/Python/getargs.c b/Python/getargs.c index 69ef16797ac4..8cb4197447b3 100644 --- a/Python/getargs.c +++ b/Python/getargs.c @@ -473,12 +473,12 @@ convertsimple1(arg, p_format, p_va) return "integer"; else if (ival < 0) { PyErr_SetString(PyExc_OverflowError, - "unsigned byte integer is less than minimum"); + "unsigned byte integer is less than minimum"); return "integer"; } 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"; } else @@ -494,12 +494,12 @@ convertsimple1(arg, p_format, p_va) return "integer"; 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"; } 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"; } else @@ -513,14 +513,14 @@ convertsimple1(arg, p_format, p_va) long ival = PyInt_AsLong(arg); if (ival == -1 && PyErr_Occurred()) return "integer"; - else if (ival < INT_MIN) { + else if (ival > INT_MAX) { PyErr_SetString(PyExc_OverflowError, - "signed integer is less than minimum"); + "signed integer is greater than maximum"); return "integer"; } - else if (ival > INT_MAX) { + else if (ival < INT_MIN) { PyErr_SetString(PyExc_OverflowError, - "signed integer is greater than maximum"); + "signed integer is less than minimum"); return "integer"; } else