diff options
Diffstat (limited to 'gcc/java')
-rw-r--r-- | gcc/java/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/java/class.c | 2 | ||||
-rw-r--r-- | gcc/java/javaop.h | 2 |
3 files changed, 8 insertions, 2 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 3b8a95a6baf..5ab19210cb7 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,9 @@ +2013-12-19 Jakub Jelinek <jakub@redhat.com> + + PR other/59545 + * class.c (hashUtf8String): Compute hash in unsigned type. + * javaop.h (WORD_TO_INT): Avoid signed integer overflow. + 2013-11-22 Andrew MacLeod <amacleod@redhat.com> * java-gimplify.c: Add required include files from gimple.h. diff --git a/gcc/java/class.c b/gcc/java/class.c index 532c9c1d94f..e5d2e6d8e8c 100644 --- a/gcc/java/class.c +++ b/gcc/java/class.c @@ -920,7 +920,7 @@ hashUtf8String (const char *str, int len) { const unsigned char* ptr = (const unsigned char*) str; const unsigned char *limit = ptr + len; - int32 hash = 0; + uint32 hash = 0; for (; ptr < limit;) { int ch = UTF8_GET (ptr, limit); diff --git a/gcc/java/javaop.h b/gcc/java/javaop.h index 574c10c7992..bffa857cc3e 100644 --- a/gcc/java/javaop.h +++ b/gcc/java/javaop.h @@ -154,7 +154,7 @@ WORD_TO_INT(jword w) { jint n = w & 0xffffffff; /* Mask lower 32 bits. */ n ^= (jint)1 << 31; - n -= (jint)1 << 31; /* Sign extend lower 32 bits to upper. */ + n -= (uint32)1 << 31; /* Sign extend lower 32 bits to upper. */ return n; } |