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
This commit is contained in:
Tom Tromey 2006-03-30 16:39:17 +00:00 committed by Tom Tromey
parent 6b86a9bc05
commit 1549c4e552
4 changed files with 27 additions and 0 deletions

View File

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

View File

@ -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;
}

View File

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

View File

@ -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 (); }
}