From: Richard Guenther Date: Sun, 9 Sep 2007 20:12:56 +0000 (+0000) Subject: backport: re PR java/31842 (r124338 causes java Divide_1 and pr6388 to fail) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0e99f680c2ae7220e1d89e13f08f8079f84e6745;p=thirdparty%2Fgcc.git backport: re PR java/31842 (r124338 causes java Divide_1 and pr6388 to fail) 2007-09-09 Richard Guenther Backport from mainline: 2007-05-07 Ian Lance Taylor PR java/31842 * java/lang/natString.cc (_Jv_FormatInt): Avoid undefined signed overflow. From-SVN: r128306 --- diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 5fb6562b4de5..e0162ca7d715 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,12 @@ +2007-09-09 Richard Guenther + + Backport from mainline: + 2007-05-07 Ian Lance Taylor + + PR java/31842 + * java/lang/natString.cc (_Jv_FormatInt): Avoid undefined signed + overflow. + 2007-02-13 Release Manager * GCC 4.1.2 released. diff --git a/libjava/java/lang/natString.cc b/libjava/java/lang/natString.cc index 3f630812d5ef..3cca5176d0bb 100644 --- a/libjava/java/lang/natString.cc +++ b/libjava/java/lang/natString.cc @@ -371,11 +371,11 @@ _Jv_FormatInt (jchar* bufend, jint num) if (num < 0) { isNeg = true; - num = -(num); - if (num < 0) + if (num != (jint) -2147483648U) + num = -(num); + else { - // Must be MIN_VALUE, so handle this special case. - // FIXME use 'unsigned jint' for num. + // Handle special case of MIN_VALUE. *--ptr = '8'; num = 214748364; }