GC (?) problems in cp/call.c - ICE with --enable-checking

Andreas Jaeger aj@suse.de
Mon Oct 25 06:54:00 GMT 1999


Trying to build the current CVS mainline version with enable checking
on i686, Linux 2.2.13, glibc 2.1.2, I get:

make[2]: Entering directory `/usr/src/build-cc/gcc'
/usr/src/build-cc/gcc/xgcc -B/usr/src/build-cc/gcc/ -B/opt/gcc-2.96/i686-pc-linux-gnu/bin/ -I/opt/gcc-2.96/i686-pc-linux-gnu/include -O2   -DIN_GCC    -g -O2 -I./include  -fPIC -g1 -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED  -g -O2 -I. -I../../cvs/gcc/gcc -I../../cvs/gcc/gcc/config -I../../cvs/gcc/gcc/../include \
  -c ../../cvs/gcc/gcc/cp/tinfo.cc
In file included from ../../cvs/gcc/gcc/cp/tinfo.cc:31:
../../cvs/gcc/gcc/cp/tinfo.h: In method `__si_type_info::__si_type_info (const char *, const __user_type_info &)':
../../cvs/gcc/gcc/cp/tinfo.h:154: Tree check: expected tree_list, have modop_expr
../../cvs/gcc/gcc/cp/tinfo.h:154: Internal compiler error in `build_call', at ../cvs/gcc/gcc/cp/call.c:395
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for instructions.
make[2]: *** [tinfo.o] Error 1
make[2]: Leaving directory `/usr/src/build-cc/gcc'
make[1]: *** [libgcc2.a] Error 1


-v shows:
 /usr/src/build-cc/gcc/cc1plus tinfo.ii -quiet -dumpbase tinfo.cc -g -g1 -g -O2 -O2 -O2 -version -fPIC -o tinfo.s
GNU C++ version 2.96 19991025 (experimental) (i686-pc-linux-gnu) compiled by GNU C version 2.96 19991025 (experimental).
In file included from ../../cvs/gcc/gcc/cp/tinfo.cc:31:
../../cvs/gcc/gcc/cp/tinfo.h: In method `__si_type_info::__si_type_info (const char *, const __user_type_info &)':
../../cvs/gcc/gcc/cp/tinfo.h:154: Tree check: expected tree_list, have modop_expr
../../cvs/gcc/gcc/cp/tinfo.h:154: Internal compiler error in `build_call', at ../cvs/gcc/gcc/cp/call.c:395
Please submit a full bug report.

Running under gdb shows that the parameter parms to build_call has
been garbage collected:

Breakpoint 2, fancy_abort (file=0x84a5dc0 "../../../cvs/gcc/gcc/cp/call.c", 
    line=395, function=0x84a5f05 "build_call") at ../../cvs/gcc/gcc/rtl.c:1146
1146      if (function == NULL)
(gdb) p function
$1 = 0x84a5f05 "build_call"
(gdb) bt
#0  fancy_abort (file=0x84a5dc0 "../../../cvs/gcc/gcc/cp/call.c", line=395, 
    function=0x84a5f05 "build_call") at ../../cvs/gcc/gcc/rtl.c:1146
#1  0x805b024 in tree_check_failed () at ../../cvs/gcc/gcc/tree.c:5156
#2  0x839799b in build_call (function=0x40160040, result_type=0x40119b80, 
    parms=0x4015b960) at ../../../cvs/gcc/gcc/cp/call.c:395
#3  0x83a081d in build_over_call (cand=0x84fba94, args=0x4015b8e0, flags=11)
    at ../../../cvs/gcc/gcc/cp/call.c:4166
#4  0x83a116b in build_new_method_call (instance=0x4015b8a0, name=0x4001b580, 
    args=0x4015b860, basetype_path=0x40152cc0, flags=11)
    at ../../../cvs/gcc/gcc/cp/call.c:4357
#5  0x8397d9f in build_method_call (instance=0x4015b8a0, name=0x4001b580, 
    parms=0x4015b860, basetype_path=0x40152cc0, flags=11)
    at ../../../cvs/gcc/gcc/cp/call.c:502
#6  0x8397734 in build_scoped_method_call (exp=0x4015b2c0, 
    basetype=0x40152cc0, name=0x4001b580, parms=0x4015b860)
    at ../../../cvs/gcc/gcc/cp/call.c:317
#7  0x843730e in expand_cleanup_for_base (binfo=0x40152cc0, flag=0x0)
    at ../../../cvs/gcc/gcc/cp/init.c:695
#8  0x8436df6 in emit_base_init (t=0x40155c80)
    at ../../../cvs/gcc/gcc/cp/init.c:545
#9  0x844e87f in setup_vtbl_ptr () at ../../../cvs/gcc/gcc/cp/semantics.c:1199
#10 0x84169e2 in yyparse () at parse.y:1624
#11 0x804ba06 in compile_file (name=0xbffff9a7 "tinfo.ii")
    at ../../cvs/gcc/gcc/toplev.c:3200
#12 0x804f549 in main (argc=15, argv=0xbffff804)
    at ../../cvs/gcc/gcc/toplev.c:5555
(gdb) p parms
$4 = 0x4015b960
(gdb) p *parms
$8 = {common = {chain = 0xa5a5a5a5, type = 0xa5a5a5a5, code = 165, 
    side_effects_flag = 1, constant_flag = 0, permanent_flag = 1, 
    addressable_flag = 0, volatile_flag = 0, readonly_flag = 1, 
    unsigned_flag = 0, asm_written_flag = 1, used_flag = 1, raises_flag = 0, 
    static_flag = 1, public_flag = 0, private_flag = 0, protected_flag = 1, 
    lang_flag_0 = 0, lang_flag_1 = 1, lang_flag_2 = 1, lang_flag_3 = 0, 
    lang_flag_4 = 1, lang_flag_5 = 0, lang_flag_6 = 0}, int_cst = {
    common = 'Â¥' <repeats 12 times>, rtl = 0xa5a5a5a5, 
    int_cst_low = -1515870811, int_cst_high = -1515870811}, real_cst = {
    common = 'Â¥' <repeats 12 times>, rtl = 0xa5a5a5a5, real_cst = {r = {
        -1515870811, -1515870811, -1515870811}}}, string = {
    common = 'Â¥' <repeats 12 times>, rtl = 0xa5a5a5a5, length = -1515870811, 
    pointer = 0xa5a5a5a5 ""}, complex = {common = 'Â¥' <repeats 12 times>, 
    rtl = 0xa5a5a5a5, real = 0xa5a5a5a5, imag = 0xa5a5a5a5}, identifier = {
    common = 'Â¥' <repeats 12 times>, length = -1515870811, 
    pointer = 0xa5a5a5a5 ""}, decl = {common = 'Â¥' <repeats 12 times>, 
    filename = 0xa5a5a5a5 "", linenum = -1515870811, uid = 2779096485, 
    size = 0xa5a5a5a5, mode = 165, external_flag = 1, nonlocal_flag = 0, 
    regdecl_flag = 1, inline_flag = 0, bit_field_flag = 0, virtual_flag = 1, 
    ignored_flag = 0, abstract_flag = 1, in_system_header_flag = 1, 
    common_flag = 0, defer_output = 1, transparent_union = 0, 
    static_ctor_flag = 0, static_dtor_flag = 1, artificial_flag = 0, 
    weak_flag = 1, lang_flag_0 = 1, lang_flag_1 = 0, lang_flag_2 = 1, 
    lang_flag_3 = 0, lang_flag_4 = 0, lang_flag_5 = 1, lang_flag_6 = 0, 
    lang_flag_7 = 1, non_addr_const_p = 1, 
    no_instrument_function_entry_exit = 0, no_check_memory_usage = 1, 
    comdat_flag = 0, frame_size = {i = -1515870811, u = 2779096485, f = {
        code = 10855845, bclass = 165}}, name = 0xa5a5a5a5, 
    context = 0xa5a5a5a5, arguments = 0xa5a5a5a5, result = 0xa5a5a5a5, 
    initial = 0xa5a5a5a5, abstract_origin = 0xa5a5a5a5, assembler_name = 0x0, 
    section_name = 0x0, machine_attributes = 0x404, rtl = 0x4, 
    live_range_rtl = 0x40152d40, saved_insns = {f = 0x0, r = 0x0, i = 0}, 
    vindex = 0x4015ad80, pointer_alias_set = 1075142272, 
    lang_specific = 0x4015b9a0}, type = {common = 'Â¥' <repeats 12 times>, 
    values = 0xa5a5a5a5, size = 0xa5a5a5a5, size_unit = 0xa5a5a5a5, 
    attributes = 0xa5a5a5a5, uid = 2779096485, precision = 165 'Â¥', 
    mode = 165, string_flag = 1, no_force_blk_flag = 0, 
    needs_constructing_flag = 1, transparent_union_flag = 0, packed_flag = 0, 
    restrict_flag = 1, lang_flag_0 = 0, lang_flag_1 = 1, lang_flag_2 = 1, 
    lang_flag_3 = 0, lang_flag_4 = 1, lang_flag_5 = 0, lang_flag_6 = 0, 
    align = 2779096485, pointer_to = 0xa5a5a5a5, reference_to = 0xa5a5a5a5, 
    symtab = {address = -1515870811, pointer = 0xa5a5a5a5 ""}, 
    name = 0xa5a5a5a5, minval = 0xa5a5a5a5, maxval = 0xa5a5a5a5, 
    next_variant = 0x0, main_variant = 0x0, binfo = 0x404, 
    noncopied_parts = 0x4, context = 0x40152d40, obstack = 0x0, 
    alias_set = 1075162496, lang_specific = 0x40155e80}, list = {
    common = 'Â¥' <repeats 12 times>, purpose = 0xa5a5a5a5, 
    value = 0xa5a5a5a5}, vec = {common = 'Â¥' <repeats 12 times>, 
    length = -1515870811, a = {0xa5a5a5a5}}, exp = {
    common = 'Â¥' <repeats 12 times>, complexity = -1515870811, operands = {
      0xa5a5a5a5}}, block = {common = 'Â¥' <repeats 12 times>, 
    handler_block_flag = 1, abstract_flag = 0, live_range_flag = 1, 
    live_range_var_flag = 0, vars = 0xa5a5a5a5, type_tags = 0xa5a5a5a5, 
    subblocks = 0xa5a5a5a5, supercontext = 0xa5a5a5a5, 
    abstract_origin = 0xa5a5a5a5, end_note = 0xa5a5a5a5, 
    live_range_start = -1515870811, live_range_end = -1515870811}}


Andreas
-- 
 Andreas Jaeger   
  SuSE Linux Labs aj@suse.de	
   private aj@arthur.rhein-neckar.de


More information about the Gcc-bugs mailing list