summaryrefslogtreecommitdiff
path: root/libjava/java
diff options
context:
space:
mode:
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2007-05-08 00:29:43 +0000
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2007-05-08 00:29:43 +0000
commita9761ef5d0c376008043684e4845cf8f6b9950b2 (patch)
tree868ce44f65955e02caefcb991f270db9d4bc43b7 /libjava/java
parent30f6089c162936c475e700b4bf170f6c7ca176b2 (diff)
downloadgcc-a9761ef5d0c376008043684e4845cf8f6b9950b2.tar.gz
PR java/31842
* java/lang/natString.cc (_Jv_FormatInt): Avoid undefined signed overflow. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124530 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java')
-rw-r--r--libjava/java/lang/natString.cc8
1 files changed, 4 insertions, 4 deletions
diff --git a/libjava/java/lang/natString.cc b/libjava/java/lang/natString.cc
index 39590a3e4e0..f177c23ccc4 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;
}