aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2006-03-30 16:39:17 +0000
committerTom Tromey <tromey@gcc.gnu.org>2006-03-30 16:39:17 +0000
commit1549c4e552ed7d8a92b83f3b5deb01867ca5e3a9 (patch)
tree308ebf09b726508051fa31d6995cd292cf65992d /gcc
parent6b86a9bc0536c073a70c7fdb563a36afe2dd6fbf (diff)
downloadgcc-1549c4e552ed7d8a92b83f3b5deb01867ca5e3a9.zip
gcc-1549c4e552ed7d8a92b83f3b5deb01867ca5e3a9.tar.gz
gcc-1549c4e552ed7d8a92b83f3b5deb01867ca5e3a9.tar.bz2
re PR java/26042 (ICE in mark_reference_fields, at java/boehm.c:105)
gcc/java PR java/26042: * parse.y (java_reorder_fields): Reset superclass field's size as well. libjava PR java/26042: * testsuite/libjava.compile/pr26042.java: New file. From-SVN: r112540
Diffstat (limited to 'gcc')
-rw-r--r--gcc/java/ChangeLog6
-rw-r--r--gcc/java/parse.y4
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 826d608..64fea4a 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,9 @@
+2006-03-30 Tom Tromey <tromey@redhat.com>
+
+ PR java/26042:
+ * parse.y (java_reorder_fields): Reset superclass field's size as
+ well.
+
2006-03-28 Tom Tromey <tromey@redhat.com>
PR java/26390:
diff --git a/gcc/java/parse.y b/gcc/java/parse.y
index 6b0bf76..118c66f 100644
--- a/gcc/java/parse.y
+++ b/gcc/java/parse.y
@@ -7770,6 +7770,10 @@ java_reorder_fields (void)
if (!DECL_NAME (TYPE_FIELDS (current_class)))
{
tree fields = TYPE_FIELDS (current_class);
+ /* This works around a problem where on some platforms,
+ the field might be given its size incorrectly. */
+ DECL_SIZE (fields) = NULL_TREE;
+ DECL_SIZE_UNIT (fields) = NULL_TREE;
TREE_CHAIN (fields) = nreverse (TREE_CHAIN (fields));
TYPE_SIZE (current_class) = NULL_TREE;
}