Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 58229 - gjc compiles static access to non-static field; gij dies while verifying bytecode
Summary: gjc compiles static access to non-static field; gij dies while verifying byt...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] GCC Porting (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Please assign to toolchain
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-07-24 15:18 UTC by Larry Morell
Modified: 2005-12-01 00:09 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Larry Morell 2004-07-24 15:18:12 UTC
// 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"
Comment 1 Mark Loeser (RETIRED) gentoo-dev 2005-11-29 08:53:20 UTC
Try with gcc-3.3.6.  Reopen if its still an issue.
Comment 2 Larry Morell 2005-11-30 18:15:30 UTC
Now works in gcc3.3.6
Comment 3 SpanKY gentoo-dev 2005-12-01 00:09:01 UTC
sounds good
Comment 4 SpanKY gentoo-dev 2005-12-01 00:09:14 UTC
FIX: upgrade to 3.3.6