// Here's what compiles: class A { public int = 1; } class B { boolean x = A.lineCount == 7 ; // illegal ref to non-static lc in A public static void main (String args[]) { } } // class B The compiler in use: $ gcj -v Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/specs Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/libgcj.spec rename spec lib to liborig Configured with: /var/tmp/portage/gcc-3.3.3-r6/work/gcc-3.3.3/configure --prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/3.3 --includedir=/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include --datadir=/usr/share/gcc-data/i686-pc-linux-gnu/3.3 --mandir=/usr/share/gcc-data/i686-pc-linux-gnu/3.3/man --infodir=/usr/share/gcc-data/i686-pc-linux-gnu/3.3/info --enable-shared --host=i686-pc-linux-gnu --target=i686-pc-linux-gnu --with-system-zlib --enable-languages=c,c++,java --enable-threads=posix --enable-long-long --disable-checking --disable-libunwind-exceptions --enable-cstdio=stdio --enable-version-specific-runtime-libs --with-gxx-include-dir=/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/g++-v3 --with-local-prefix=/usr/local --enable-shared --enable-nls --without-included-gettext --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib --enable-interpreter --enable-java-awt=xlib --with-x --disable-multilib --enable-__cxa_atexit --enable-clocale=generic Thread model: posix gcc version 3.3.3 20040412 (Gentoo Linux 3.3.3-r6, ssp-3.3.2-2, pie-8.7.6) lapple{morell}(587): Reproducible: Always Steps to Reproduce: 1. Type the code into a file called B.java 2. Compile with javac B.java 3. Run with java B Actual Results: $ javac B.java $ java B Exception in thread "main" java.lang.VerifyError: verification failed at PC 2 in B:finit$(()V): incompatible type on stack at _Jv_BytecodeVerifier.verify_fail(byte, int) (/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/libgcj.so.4.0.0) at _Jv_BytecodeVerifier.pop_type(_Jv_BytecodeVerifier.type) (/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/libgcj.so.4.0.0) at _Jv_BytecodeVerifier.verify_instructions_0() (/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/libgcj.so.4.0.0) at _Jv_BytecodeVerifier.verify_instructions() (/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/libgcj.so.4.0.0) at _Jv_VerifyMethod(_Jv_InterpMethod) (/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/libgcj.so.4.0.0) at _Jv_PrepareClass(java.lang.Class) (/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/libgcj.so.4.0.0) at java.lang.ClassLoader.linkClass0(java.lang.Class) (/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/libgcj.so.4.0.0) at java.lang.ClassLoader.resolveClass0(java.lang.Class) (/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/libgcj.so.4.0.0) at java.lang.Class.initializeClass() (/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/libgcj.so.4.0.0) at _Jv_InitClass (/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/libgcj.so.4.0.0) at java.lang.Class.forName(java.lang.String, boolean, java.lang.ClassLoader) (/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/libgcj.so.4.0.0) at java.lang.Class.forName(java.lang.String) (/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/libgcj.so.4.0.0) at gnu.gcj.runtime.FirstThread.run() (/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/libgcj.so.4.0.0) at _Jv_ThreadRun(java.lang.Thread) (/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/libgcj.so.4.0.0) at _Jv_RunMain(java.lang.Class, byte const, int, byte const, boolean) (/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/libgcj.so.4.0.0) at __libc_start_main (/lib/libc-2.3.3.so) $ Expected Results: Should have issued a syntax error indicating illegal use of non-static field. b# emerge info Portage 2.0.50-r9 (default-x86-2004.0, gcc-3.3.3, glibc-2.3.3.20040420-r0, 2.6.7-gentoo-r11) ================================================================= System uname: 2.6.7-gentoo-r11 i686 Intel(R) Pentium(R) M processor 1700MHz Gentoo Base System version 1.4.16 distcc 2.13 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled] ccache version 2.3 [enabled] Autoconf: sys-devel/autoconf-2.59-r3 Automake: sys-devel/automake-1.8.3 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-O2 -mcpu=i686 -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb:/usr/kde/3.2/share/config:/usr/share/texmf/tex/generic/config/ /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/:/usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/gconf:/etc/terminfo /etc/env.d" CXXFLAGS="-O2 -mcpu=i686 -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox" GENTOO_MIRRORS="http://mirror.tucdemonic.org/gentoo/ ftp://mirrors.tds.net/gentoo http://mirrors.tds.net/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X apm arts avi berkdb crypt cups encode esd foomaticdb gcj gdbm gif gpm gtk2 imlib java javacomm javamail javascript jpeg kde libg++ libwww mad mikmod motif mozilla mpeg ncurses nls oggvorbis opengl oss pam pdflib perl png python qt quicktime readline sdl slang spell ssl svga tcpd tetex truetype x86 xml2 xmms xv zlib"
Try with gcc-3.3.6. Reopen if its still an issue.
Now works in gcc3.3.6
sounds good
FIX: upgrade to 3.3.6