This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
RE: SIGSEGV in jc1
- To: "Boehm, Hans" <hans_boehm at hp dot com>, "'Per Bothner'" <per at bothner dot com>, "'tromey at redhat dot com'" <tromey at redhat dot com>
- Subject: RE: SIGSEGV in jc1
- From: "Boehm, Hans" <hans_boehm at hp dot com>
- Date: Tue, 8 May 2001 17:27:32 -0700
- Cc: "'java at gcc dot gnu dot org'" <java at gcc dot gnu dot org>
I still see this failure both in the branch and in (my hacked version of)
the trunk. I believe it's reproducible by
1) Downloading and unpacking
http://www.hpl.hp.com/personal/Hans_Boehm/crcalc/download/CRCalc.tar.gz
2) Making sure that JAVAC in the Makefile is a usable Java to class file
compiler, and that the gcj on the path is the right one.
3) Typing "make rpn_calc" in the root directory.
Based on the stack trace, I would guess that it also occurs in other cases
in which you're compiling from .class files which include inner classes?
Is there an easy way to diable the -ffilelist-file mechanism to work around
this?
Hans
> -----Original Message-----
> From: Boehm, Hans
> Sent: Friday, April 20, 2001 4:28 PM
> To: 'Per Bothner'; tromey@redhat.com
> Cc: java@gcc.gnu.org
> Subject: SIGSEGV in jc1
>
>
> I built the current 3.0 tree on X86 with limited success. If
> I try to build my constructive reals calculator, it dies in
> jc1. The original command line mentions one .java file and
> multiple .class files. Here is a short debugging session:
>
> Starting program:
> /home/hboehm/gcc3.0/usr/lib/gcc-lib/i686-pc-linux-gnu/3.0/jc1
> /tmp/ccDfJjnbjx -fno-use-divide-subroutine -fuse-boehm-gc
> -fasynchronous-exceptions -quiet -dumpbase ccDfJjnbjx -g1
> -version -ffilelist-file -o ccDfJjnbjx.s
> GNU Java version 3.0 20010420 (prerelease) (i686-pc-linux-gnu)
> compiled by GNU C version 2.95.1 19990816 (release).
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x81fa7b4 in maybe_get_identifier (text=0x0) at
> ../../gcc/gcc/stringpool.c:341
> 341 size_t length = strlen (text);
> (gdb) where
> #0 0x81fa7b4 in maybe_get_identifier (text=0x0)
> at ../../gcc/gcc/stringpool.c:341
> #1 0x804fa2b in java_parser_context_restore_global ()
> at ../../gcc/gcc/java/parse.y:2729
> #2 0x8077a20 in read_class (name=0x4016d8c0)
> at ../../gcc/gcc/java/jcf-parse.c:625
> #3 0x8077a7f in load_class (class_or_name=0x4016d8c0, verbose=1)
> at ../../gcc/gcc/java/jcf-parse.c:658
> #4 0x8077d05 in load_inner_classes (cur_class=0x4016b8f0)
> at ../../gcc/gcc/java/jcf-parse.c:747
> #5 0x8077a0d in read_class (name=0x4016ae00)
> at ../../gcc/gcc/java/jcf-parse.c:621
> #6 0x8077a7f in load_class (class_or_name=0x4016b8f0, verbose=1)
> at ../../gcc/gcc/java/jcf-parse.c:658
> #7 0x80625f0 in class_depth (clas=0x4016b8f0)
> at ../../gcc/gcc/java/class.c:416
> #8 0x806980a in can_widen_reference_to (source_type=0x4016b9c0,
> target_type=0x40167f70) at ../../gcc/gcc/java/expr.c:441
> #9 0x806949f in pop_type_0 (type=0x40167f70, messagep=0xbffff724)
> at ../../gcc/gcc/java/expr.c:350
> #10 0x8073bbc in verify_jvm_instructions (jcf=0x83367d0,
> byte_ops=0x8347b01 "»", length=11) at
> ../../gcc/gcc/java/verify.c:895
> #11 0x806d57c in expand_byte_code (jcf=0x83367d0, method=0x4016f3a8)
> at ../../gcc/gcc/java/expr.c:2702
> #12 0x8077ef4 in parse_class_file () at
> ../../gcc/gcc/java/jcf-parse.c:835
> #13 0x8078758 in yyparse () at ../../gcc/gcc/java/jcf-parse.c:1129
> #14 0x8082a03 in compile_file (name=0xbffffa5c "/tmp/ccDfJjnbjx")
> at ../../gcc/gcc/toplev.c:2339
> #15 0x80867cd in main (argc=13, argv=0xbffff8d4) at
> ../../gcc/gcc/toplev.c:4924
> (gdb) up
> #1 0x804fa2b in java_parser_context_restore_global ()
> at ../../gcc/gcc/java/parse.y:2729
> 2729 BUILD_FILENAME_IDENTIFIER_NODE (s, input_filename);
> (gdb) p *ctxp
> $1 = {filename = 0x0, next = 0x8609f30, lexer = 0x0,
> marker_begining = 0 '\000', p_line = 0x0, c_line = 0x0, elc
> = {line = 0,
> prev_col = 0, col = 0}, ccb_indent = 0, first_ccb_indent1 = 0,
> last_ccb_indent1 = 0, parser_ccb_indent = 0, osb_depth = 0,
> osb_limit = 0,
> osb_number = 0x0, lineno = 153, marker_end = 0 '\000',
> saved_data_ctx = 0,
> saved_data = 1, minus_seen = 0, java_error_flag = 0,
> deprecated = 0,
> class_err = 0, modifier_ctx = {0x0 <repeats 11 times>},
> class_type = 0x4016b8f0, function_decl = 0x4016f3a8,
> current_jcf = 0x0,
> prevent_ese = 0, formal_parameter_number = 0, interface_number = 0,
> package = 0x0, class_list = 0x0, classd_list = 0x0,
> current_parsed_class = 0x0, current_parsed_class_un = 0x0,
> non_static_initialized = 0x0, static_initialized = 0x0,
> instance_initializers = 0x0, import_list = 0x0,
> import_demand_list = 0x0,
> current_loop = 0x0, current_labeled_block = 0x0, pending_block = 0,
> explicit_constructor_p = 0}
> (gdb)
>
>
>