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
This commit is contained in:
Joern Rennecke 2010-11-16 21:46:28 +00:00 committed by Joern Rennecke
parent 1ec601bf9f
commit 2b12962772
5 changed files with 12 additions and 10 deletions

View File

@ -70,6 +70,10 @@
* config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
Allow (W) == HOST_BITS_PER_WIDE_INT.
PR java/46386
* config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
* config/t-pnt16-warn (java/constants.o-warn): Likewise.
2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
* config/arc/arc.c: Delete pasto.

View File

@ -42,7 +42,3 @@ MULTILIB_OPTIONS = msoft-float
# We could say "-Werror -Wno-error=type-limits", alas, not all supported
# gcc bootstrap compilers support the latter option.
dwarf2out.o-warn = -Wno-error
# Likewise, java/constants.c:build_constants_constructor has a negative shift
# count (in never-executed code) due to the small POINTER_SIZE.
java/constants.o-warn = -Wno-error

View File

@ -25,7 +25,3 @@
# We could say "-Werror -Wno-error=type-limits", alas, not all supported
# gcc bootstrap compilers support the latter option.
dwarf2out.o-warn = -Wno-error
# Likewise, java/constants.c:build_constants_constructor has a negative shift
# count (in never-executed code) due to the small POINTER_SIZE.
java/constants.o-warn = -Wno-error

View File

@ -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).

View File

@ -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,