The following test case crashes:
$ gcj -C PipeImpl.java
$ gcj -c *.class -o t.o
PipeImpl.java:0: internal compiler error: in java_mark_cni_decl_local, at java/decl.c:2182
public PipeImpl ()
final class VMPipe
static native void init(PipeImpl self);
I'm not able to reproduce this problem with the current mainline (2006-05-18).
I was able to reproduce yesterday; but I'm updating and rebuilding
just to be sure.
The bug is dependent on the order in which the .class files are read.
OK, I was able to reproduce this. My problem was that I had a "--disable-checking"
build. If the order of the class files is "PipeImpl.class VMPipe.class", I get
an error; if the order is the other way around, I don't.
I have a patch I'm testing.
Works in svn trunk.
Subject: Bug 27643
Date: Tue Dec 18 14:06:15 2007
New Revision: 131036
2007-12-18 Andrew Haley <email@example.com>
* jcf-parse.c (java_parse_file): Remove call to
(parse_class_file): Reinstate call to java_mark_class_local here.
* decl.c (java_mark_cni_decl_local): If the ASSEMBLER_NAME is
already set, call java_mangle_decl() and make_decl_rtl() to
rewrite its name as a hidden alias.