Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 5e08cb8

Browse files
committed
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.
1 parent d7823f2 commit 5e08cb8

1 file changed

Lines changed: 8 additions & 8 deletions

File tree

Python/getargs.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -473,12 +473,12 @@ convertsimple1(arg, p_format, p_va)
473473
return "integer<b>";
474474
else if (ival < 0) {
475475
PyErr_SetString(PyExc_OverflowError,
476-
"unsigned byte integer is less than minimum");
476+
"unsigned byte integer is less than minimum");
477477
return "integer<b>";
478478
}
479479
else if (ival > UCHAR_MAX) {
480480
PyErr_SetString(PyExc_OverflowError,
481-
"unsigned byte integer is greater than maximum");
481+
"unsigned byte integer is greater than maximum");
482482
return "integer<b>";
483483
}
484484
else
@@ -494,12 +494,12 @@ convertsimple1(arg, p_format, p_va)
494494
return "integer<h>";
495495
else if (ival < SHRT_MIN) {
496496
PyErr_SetString(PyExc_OverflowError,
497-
"signed short integer is less than minimum");
497+
"signed short integer is less than minimum");
498498
return "integer<h>";
499499
}
500500
else if (ival > SHRT_MAX) {
501501
PyErr_SetString(PyExc_OverflowError,
502-
"signed short integer is greater than maximum");
502+
"signed short integer is greater than maximum");
503503
return "integer<h>";
504504
}
505505
else
@@ -513,14 +513,14 @@ convertsimple1(arg, p_format, p_va)
513513
long ival = PyInt_AsLong(arg);
514514
if (ival == -1 && PyErr_Occurred())
515515
return "integer<i>";
516-
else if (ival < INT_MIN) {
516+
else if (ival > INT_MAX) {
517517
PyErr_SetString(PyExc_OverflowError,
518-
"signed integer is less than minimum");
518+
"signed integer is greater than maximum");
519519
return "integer<i>";
520520
}
521-
else if (ival > INT_MAX) {
521+
else if (ival < INT_MIN) {
522522
PyErr_SetString(PyExc_OverflowError,
523-
"signed integer is greater than maximum");
523+
"signed integer is less than minimum");
524524
return "integer<i>";
525525
}
526526
else

0 commit comments

Comments
 (0)