aboutsummaryrefslogtreecommitdiff
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
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
-rw-r--r--gcc/java/ChangeLog6
-rw-r--r--gcc/java/parse.y4
-rw-r--r--libjava/ChangeLog5
-rw-r--r--libjava/testsuite/libjava.compile/pr26042.java12
4 files changed, 27 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;
}
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 50b30af..9867c7a 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,8 @@
+2006-03-30 Tom Tromey <tromey@redhat.com>
+
+ PR java/26042:
+ * testsuite/libjava.compile/pr26042.java: New file.
+
2006-03-29 Tom Tromey <tromey@redhat.com>
* sources.am, Makefile.in: Rebuilt.
diff --git a/libjava/testsuite/libjava.compile/pr26042.java b/libjava/testsuite/libjava.compile/pr26042.java
new file mode 100644
index 0000000..485b36a
--- /dev/null
+++ b/libjava/testsuite/libjava.compile/pr26042.java
@@ -0,0 +1,12 @@
+class One
+{
+ long l; // no ICE if this is int, not long
+ int b; // no ICE if this line is gone; type doesn't matter
+}
+
+public class pr26042
+{
+ class Three extends One { }
+ Three three () { return new Three (); }
+}
+