[Python-checkins] CVS: python/dist/src/Python getargs.c,2.33,2.34

Guido van Rossum python-dev@python.org
Wed, 28 Jun 2000 16:53:59 -0700


Update of /cvsroot/python/python/dist/src/Python
In directory slayer.i.sourceforge.net:/tmp/cvs-serv25100

Modified Files:
	getargs.c 
Log Message:
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.


Index: getargs.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Python/getargs.c,v
retrieving revision 2.33
retrieving revision 2.34
diff -C2 -r2.33 -r2.34
*** getargs.c	2000/05/09 21:50:00	2.33
--- getargs.c	2000/06/28 23:53:56	2.34
***************
*** 474,483 ****
  			else if (ival < 0) {
  				PyErr_SetString(PyExc_OverflowError,
! 					"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");
  				return "integer<b>";
  			}
--- 474,483 ----
  			else if (ival < 0) {
  				PyErr_SetString(PyExc_OverflowError,
! 			      "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");
  				return "integer<b>";
  			}
***************
*** 495,504 ****
  			else if (ival < SHRT_MIN) {
  				PyErr_SetString(PyExc_OverflowError,
! 					"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");
  				return "integer<h>";
  			}
--- 495,504 ----
  			else if (ival < SHRT_MIN) {
  				PyErr_SetString(PyExc_OverflowError,
! 			      "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");
  				return "integer<h>";
  			}
***************
*** 514,525 ****
  			if (ival == -1 && PyErr_Occurred())
  				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");
  				return "integer<i>";
  			}
--- 514,525 ----
  			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>";
  			}