http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50831
Bug #: 50831 Summary: [4.7 regression] SIGSEGV in link.cc:1904 Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libgcj AssignedTo: unassig...@gcc.gnu.org ReportedBy: jojel...@gmail.com Host: i686-pc-cygwin Target: i686-pc-mingw32 Build: i686-pc-cygwin Running gcj-dbtool or gjar or any executable compiled with GCJ tag sigsegvs /bin/sh ./libtool --tag=GCJ --mode=link /tmp/gcc/host-i686-pc-cygwin/gcc/gcj -B/tmp/gcc/i686-pc-mingw32/libjava/ -B/tmp/gcc/host-i686-pc-cygwin/gcc/ -L/tmp/gcc/i686-pc-mingw32/winsup/mingw -L/tmp/gcc/i686-pc-mingw32/winsup/w32api/lib -isystem /tmp/gcc/winsup/mingw/include -isystem /tmp/gcc/winsup/w32api/include -B/usr/i686-pc-mingw32/bin/ -B/usr/i686-pc-mingw32/lib/ -isystem /usr/i686-pc-mingw32/include -isystem /usr/i686-pc-mingw32/sys-include --sysroot=/usr/i686-pc-mingw32/sys-root -L/tmp/gcc/i686-pc-mingw32/libjava -ffloat-store -fomit-frame-pointer -Usun -fno-omit-frame-pointer -g -O2 -o gcj-dbtool.exe --main=gnu.gcj.tools.gcj_dbtool.Main -rpath /usr/i686-pc-mingw32/lib -shared-libgcc gnu/gcj/tools/gcj_dbtool/natMain.o gnu/gcj/tools/gcj_dbtool.lo -L/tmp/gcc/i686-pc-mingw32/libjava/.libs libgcj.la gdb --args .libs/gcj-dbtool.exe (gdb) p klass->engine $14 = (_Jv_ExecutionEngine *) 0x0 (gdb) p *klass $15 = (java::lang::Class) { <java::lang::Object> = {<No data fields>}, members of java::lang::Class: static class$ = { <java::lang::Object> = {<No data fields>}, members of java::lang::Class: static class$ = <same as static member of an already seen type>, next_or_version = 0x0, name = 0x6a04c874, accflags = 0x31, superclass = 0x69d57180, constants = { size = 0x25, tags = 0x69d57620 "", data = 0x69d57580 }, { methods = 0x69d57660, element_type = 0x69d57660 }, method_count = 0x52, vtable_method_count = 0x41, fields = 0x0, ---Type <return> to continue, or q <return> to quit--- size_in_bytes = 0x90, field_count = 0x0, static_field_count = 0x0, vtable = 0x69d57468, otable = 0x0, otable_syms = 0x0, atable = 0x0, atable_syms = 0x0, itable = 0x0, itable_syms = 0x0, catch_classes = 0x69d57cc8, interfaces = 0x69d57ce0, loader = 0x0, interface_count = 0x4, state = 0xe, thread = 0x1, depth = 0x1, ancestors = 0xa64ff0, { idt = 0xa68fc8, ioffsets = 0xa68fc8 }, arrayclass = 0xa6ced8, ---Type <return> to continue, or q <return> to quit--- protectionDomain = 0x0, assertion_table = 0x0, hack_signers = 0x0, chain = 0x69e6c120, aux_info = 0x0, engine = 0x6a3a95c0, reflection_data = 0x6a04c8a0 "\001" }, next_or_version = 0x400635d8, name = 0x4060bc, accflags = 0x21, superclass = 0x69d57180, constants = { size = 0x32, tags = 0x405420 "", data = 0x4052c0 }, { methods = 0x405460, element_type = 0x405460 }, method_count = 0xa, vtable_method_count = 0x6, ---Type <return> to continue, or q <return> to quit--- fields = 0x405528, size_in_bytes = 0x4, field_count = 0x1, static_field_count = 0x1, vtable = 0x4051a8, otable = 0x0, otable_syms = 0x0, atable = 0x0, atable_syms = 0x0, itable = 0x0, itable_syms = 0x0, catch_classes = 0x405538, interfaces = 0x0, loader = 0x0, interface_count = 0x0, state = 0x1, thread = 0x0, depth = 0x0, ancestors = 0x0, { idt = 0x0, ioffsets = 0x0 }, ---Type <return> to continue, or q <return> to quit--- arrayclass = 0x0, protectionDomain = 0x0, assertion_table = 0x0, hack_signers = 0x0, chain = 0x0, aux_info = 0x0, engine = 0x0, reflection_data = 0x4060de "" } why do we have two engine field?