A GCC checked out from CVS on 2005-01-03 gets a segmentation fault when compiling the following code. Jikes compiles it all right, generating an <init> method that takes references to both First and Second as parameters. Kaffe attempts the same but fails verification.
class First { class Inner {} }; class Second { void fn(First first) { first.new Inner() { void crash() {} }; } } $ gcj -v -C AnonExt.java Using built-in specs. Configured with: /home/kalle/src/FOREIGN-CVS/gcc/configure --prefix=/home/kalle --exec-prefix=/home/kalle/i386-pc-linux-gnu --host=i386-pc-linux-gnu --build=i386-pc-linux-gnu Thread model: posix gcc version 4.0.0 20050103 (experimental) /home/kalle/stow/gcc/i386-pc-linux-gnu/bin/../libexec/gcc/i386-pc-linux-gnu/4.0.0/jc1 AnonExt.java -quiet -dumpbase AnonExt.java -auxbase-strip NONE -g1 -version -fsyntax-only -femit-class-files -o /dev/null GNU Java version 4.0.0 20050103 (experimental) (i386-pc-linux-gnu) compiled by GNU C version 4.0.0 20041023 (experimental). GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 Class path starts here: ./ /home/kalle/stow/gcc/i386-pc-linux-gnu/bin/../lib/gcc/../../../share/java/libgcj-4.0.0.jar/ (system) (zip) AnonExt.java:10: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. If I remove the crash() function, then GCC succeeds in compiling the source. I haven't checked the resulting bytecode, though. -- Summary: ICE when anonymous class extends inner class of another class Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: java AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: kon at iki dot fi CC: gcc-bugs at gcc dot gnu dot org,java-prs at gcc dot gnu dot org GCC build triplet: i386-pc-linux-gnu GCC host triplet: i386-pc-linux-gnu GCC target triplet: i386-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19471