aboutsummaryrefslogtreecommitdiff
path: root/gcc/java
diff options
context:
space:
mode:
authorJoern Rennecke <amylaar@spamcop.net>2010-11-16 21:46:28 +0000
committerJoern Rennecke <amylaar@gcc.gnu.org>2010-11-16 21:46:28 +0000
commit2b12962772d3b0e85d860609f32bfb28515d5ba9 (patch)
tree88cf075a501bb99204a04ce6942ba3d5aab51605 /gcc/java
parent1ec601bf9fb0fbc39b3a6cb90450500f857adae8 (diff)
downloadgcc-2b12962772d3b0e85d860609f32bfb28515d5ba9.zip
gcc-2b12962772d3b0e85d860609f32bfb28515d5ba9.tar.gz
gcc-2b12962772d3b0e85d860609f32bfb28515d5ba9.tar.bz2
re PR java/46386 (negative shift count in build_constants_constructor for 16 bit pointer targets)
2010-11-09 Joern Rennecke <amylaar@spamcop.net> Andrew Haley <aph@redhat.com> PR java/46386 gcc/java: * constants.c (build_constants_constructor): Avoid negative shift. gcc: * config/pdp11/t-pdp11 (java/constants.o-warn): Remove. * config/t-pnt16-warn (java/constants.o-warn): Likewise. Co-Authored-By: Andrew Haley <aph@redhat.com> From-SVN: r166826
Diffstat (limited to 'gcc/java')
-rw-r--r--gcc/java/ChangeLog6
-rw-r--r--gcc/java/constants.c4
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 8932913..825f02f 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,9 @@
+2010-11-09 Joern Rennecke <amylaar@spamcop.net>
+ Andrew Haley <aph@redhat.com>
+
+ PR java/46386
+ * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
+
2010-11-12 Joseph Myers <joseph@codesourcery.com>
* Make-lang.in (jvspec.o, java/lang.o): Use $(OPTS_H).
diff --git a/gcc/java/constants.c b/gcc/java/constants.c
index 14410d1..c80afc7 100644
--- a/gcc/java/constants.c
+++ b/gcc/java/constants.c
@@ -540,8 +540,8 @@ build_constants_constructor (void)
FIXME: This is a kludge. The field we're initializing is
not a scalar but a union, and that's how we should
represent it in the compiler. We should fix this. */
- if (BYTES_BIG_ENDIAN && POINTER_SIZE > 32)
- temp <<= POINTER_SIZE - 32;
+ if (BYTES_BIG_ENDIAN)
+ temp <<= ((POINTER_SIZE > 32) ? POINTER_SIZE - 32 : 0);
CONSTRUCTOR_PREPEND_VALUE (t, get_tag_node (outgoing_cpool->tags[i]));
CONSTRUCTOR_PREPEND_VALUE (d,