With certain invalid code, the 4.1 branch of gcj produces an ICE after giving
the correct error message. For example:
$ cat T5.java
final class T6 {
}
class T5 extends T6 {
}
$ gcj -C T5.java
T5.java:3: error: Can't subclass final classes: T6.
class T5 extends T6 {
^
T5.java:0: internal compiler error: tree check: expected tree that contains
decl minimal structure, have identifier_node in
check_inner_circular_reference, at ./gcc/java/parse.y:5389
Please submit a full bug report,[...]
This problem happens with latest CVS and the 4.1-20050515 snapshot but not
4.0.1. It sounds similar to bug 4715, and it seems to have a similar workaround
to the one given there; adding
if (TREE_CODE (su) == POINTER_TYPE)
continue;
to check_inner_circular_reference() makes the problem go away.
--
Summary: 4.1 ICE: tree check error in
check_inner_circular_reference
Product: gcc
Version: 4.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: java
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: wmahan at gmail dot com
CC: gcc-bugs at gcc dot gnu dot org,java-prs at gcc dot gnu
dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23754