A GCC checked out from CVS on 2005-01-03 compiles the following code without complaint. Jikes and Kaffe reject the source, saying that java.lang.Object$TopLevel (or java.lang.Object.TopLevel) is not found. class TopLevel { static void fn(Object obj) { obj.new TopLevel(); java.lang.Object.new TopLevel(); } } $ gcj -v -C TopLevel.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 TopLevel.java -quiet -dumpbase TopLevel.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) Strangely, if I remove the "java.lang." part, then GCC does report an error.
Confirmed.
All gcj front end bugs have been fixed by the gcj-eclipse branch merge. I'm mass-closing the affected PRs. If you believe one of these was closed in error, please reopen it with a note explaining why. Thanks.