diff options
author | Tom Tromey <tromey@redhat.com> | 2006-03-30 16:39:17 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2006-03-30 16:39:17 +0000 |
commit | 1549c4e552ed7d8a92b83f3b5deb01867ca5e3a9 (patch) | |
tree | 308ebf09b726508051fa31d6995cd292cf65992d | |
parent | 6b86a9bc0536c073a70c7fdb563a36afe2dd6fbf (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/java/parse.y | 4 | ||||
-rw-r--r-- | libjava/ChangeLog | 5 | ||||
-rw-r--r-- | libjava/testsuite/libjava.compile/pr26042.java | 12 |
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 (); } +} + |