This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/13971] [3.4/3.5 Regression] ICE when compiling koffice-cvs (in build_conditional_expr, at cp/call.c:3068)


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-02-02 17:50 -------
Here is the debuging session I did to look into this problem:
Breakpoint 1, 0x9002c878 in exit ()
(gdb) bt
#0  0x9002c878 in exit ()
#1  0x000d7184 in internal_error (msgid=0x1 <Address 0x1 out of bounds>) at /Users/pinskia/
src/gcc-checkin/src/gcc/diagnostic.c:538
#2  0x000d7184 in internal_error (msgid=0x1 <Address 0x1 out of bounds>) at /Users/pinskia/
src/gcc-checkin/src/gcc/diagnostic.c:538
#3  0x000d71c4 in fancy_abort (file=0x1 <Address 0x1 out of bounds>, line=-1073744736, 
function=0x476d44 "build_conditional_expr") at /Users/pinskia/src/gcc-checkin/src/gcc/
diagnostic.c:584
#4  0x0000b4f0 in build_conditional_expr (arg1=0x4da4e0, arg2=0x40e91180, 
arg3=0x40cd25e0) at /Users/pinskia/src/gcc-checkin/src/gcc/cp/call.c:3068
#5  0x00065590 in build_x_conditional_expr (ifexp=0x4da4e0, op1=0x40e91180, 
op2=0x40e91100) at /Users/pinskia/src/gcc-checkin/src/gcc/cp/typeck.c:4330
#6  0x0005535c in cp_parser_expression (parser=0x4da4e0) at /Users/pinskia/src/gcc-checkin/
src/gcc/cp/parser.c:5263
#7  0x0005a31c in cp_parser_statement (parser=0x4da4e0, in_statement_expr_p=1087186400) at 
/Users/pinskia/src/gcc-checkin/src/gcc/cp/parser.c:6027
#8  0x0005a3b8 in cp_parser_compound_statement (parser=0x4da4e0, 
in_statement_expr_p=1089016064) at /Users/pinskia/src/gcc-checkin/src/gcc/cp/parser.c:5614
#9  0x0005e698 in cp_parser_ctor_initializer_opt_and_function_body (parser=0x4da4e0) at /
Users/pinskia/src/gcc-checkin/src/gcc/cp/parser.c:11227
#10 0x0005e9ac in cp_parser_function_definition_after_declarator (parser=0x40e8ed80, 
inline_p=false) at /Users/pinskia/src/gcc-checkin/src/gcc/cp/parser.c:14066
#11 0x0005ee50 in cp_parser_init_declarator (parser=0x40e8ed80, decl_specifiers=0x0, 
prefix_attributes=0x0, function_definition_allowed_p=true, member_p=true, 
declares_class_or_enum=1, function_definition_p=0x0) at /Users/pinskia/src/gcc-checkin/src/
gcc/cp/parser.c:14011
#12 0x0005943c in cp_parser_simple_declaration (parser=0x1, 
function_definition_allowed_p=1089006976) at /Users/pinskia/src/gcc-checkin/src/gcc/cp/
parser.c:6437
#13 0x0005962c in cp_parser_block_declaration (parser=0x40e8ed80, statement_p=true) at /
Users/pinskia/src/gcc-checkin/src/gcc/cp/parser.c:6353
#14 0x0005f93c in cp_parser_declaration (parser=0x40e8ed80) at /Users/pinskia/src/gcc-
checkin/src/gcc/cp/parser.c:6273
#15 0x0005fc54 in cp_parser_declaration_seq_opt (parser=0x40e8ed80) at /Users/pinskia/src/
gcc-checkin/src/gcc/cp/parser.c:6182
#16 0x0005fe34 in c_parse_file () at /Users/pinskia/src/gcc-checkin/src/gcc/cp/parser.c:2307
#17 0x000bc494 in c_common_parse_file (set_yydebug=1) at /Users/pinskia/src/gcc-checkin/src/
gcc/c-opts.c:1216
#18 0x000f6748 in toplev_main (argc=0, argv=0x48fce4) at /Users/pinskia/src/gcc-checkin/src/
gcc/toplev.c:1812
#19 0x000020d4 in _start (argc=2, argv=0xbffffc78, envp=0xbffffc84) at /SourceCache/Csu/Csu
-46/crt.c:267
#20 0x00001f48 in start ()
(gdb) up 4
#4  0x0000b4f0 in build_conditional_expr (arg1=0x4da4e0, arg2=0x40e91180, 
arg3=0x40cd25e0) at /Users/pinskia/src/gcc-checkin/src/gcc/cp/call.c:3068
warning: Source file is more recent than executable.

3068                abort ();
(gdb) l
3063            {
3064              arg3 = convert_like (conv3, arg3);
3065              arg3 = convert_from_reference (arg3);
3066              if (!same_type_p (TREE_TYPE (arg3), arg2_type)
3067                  && CLASS_TYPE_P (arg2_type))
3068                abort ();
3069              arg3_type = TREE_TYPE (arg3);
3070            }
3071        }
3072
(gdb) p debug_tree(arg3)
 <target_expr 0x40cd25e0
    type <record_type 0x40e8ee00 QChar type_1 type_5 QI
        size <integer_cst 0x40cbeb80 constant 8>
        unit size <integer_cst 0x40cbea00 constant 1>
        align 8 symtab 0 alias set -1
        fields <var_decl 0x40e91180 null type <record_type 0x40e91100 QChar>
            readonly used public static external nonlocal decl_3 decl_6 QI file pr13971.cc line 2 size 
<integer_cst 0x40cbeb80 8> unit size <integer_cst 0x40cbea00 1>
            align 8 context <record_type 0x40e8ee00 QChar>
            chain <type_decl 0x40e91080 QChar>>
        X() X(constX&) this=(X&) n_parents 0 use_template=0 interface-unknown
        member-functions <tree_vec 0x40cbf2d0
            elt 0 <overload 0x40e894e0>
            elt 2 <function_decl 0x40e91b00 operator=>
            elt 3 <overload 0x40e89520>
            elt 4 <overload 0x40e89500>>
        pointer_to_this <pointer_type 0x40e8ef00> reference_to_this <reference_type 0x40e91880> 
chain <type_decl 0x40e8ef80 QChar>>
    side-effects addressable
    arg 0 <var_decl 0x4db600 type <record_type 0x40e8ee00 QChar>
        addressable QI file pr13971.cc line 12 size <integer_cst 0x40cbeb80 8> unit size 
<integer_cst 0x40cbea00 1>
        align 8 context <function_decl 0x4db000 fillParagraph>>
    arg 1 <call_expr 0x4da8d0 type <record_type 0x40e8ee00 QChar>
        side-effects
        arg 0 <addr_expr 0x4da8b8 type <pointer_type 0x4db500>
            constant arg 0 <function_decl 0x40e92600 operator 1>>
        arg 1 <tree_list 0x4da888
            value <nop_expr 0x4da870 type <pointer_type 0x40e92300>
                side-effects
                arg 0 <nop_expr 0x4da858 type <pointer_type 0x40e92300>
                    side-effects
                    arg 0 <addr_expr 0x4da780 type <pointer_type 0x40e92300>
                        side-effects
                        arg 0 <target_expr 0x40cd2560 type <record_type 0x40e92200 QCharRef>
                            side-effects addressable arg 0 <var_decl 0x4db400> arg 1 <call_expr 
0x4da480>>>>>>>>
$1 = void
(gdb) p debug_tree(arg2_type)
 <record_type 0x40e91100 QChar readonly type_1 type_5 QI
    size <integer_cst 0x40cbeb80 type <integer_type 0x40ccc080 bit_size_type> constant 8>
    unit size <integer_cst 0x40cbea00 type <integer_type 0x40ccc000 long unsigned int> constant 
1>
    align 8 symtab 0 alias set -1
    fields <var_decl 0x40e91180 null type <record_type 0x40e91100 QChar>
        readonly used public static external nonlocal decl_3 decl_6 QI file pr13971.cc line 2 size 
<integer_cst 0x40cbeb80 8> unit size <integer_cst 0x40cbea00 1>
        align 8 context <record_type 0x40e8ee00 QChar>
       
        chain <type_decl 0x40e91080 QChar type <record_type 0x40e8ee00 QChar>
            nonlocal decl_4 VOID file pr13971.cc line 1
            align 1 context <record_type 0x40e8ee00 QChar>
           >>
    X() X(constX&) this=(X&) n_parents 0 use_template=0 interface-unknown
    member-functions <tree_vec 0x40cbf2d0
        elt 0 <overload 0x40e894e0>
        elt 2 <function_decl 0x40e91b00 operator=>
        elt 3 <overload 0x40e89520>
        elt 4 <overload 0x40e89500>>
    pointer_to_this <pointer_type 0x4db480> reference_to_this <reference_type 0x40e91500>>
$2 = void

By the looks of this, it looks like there are two different structs called QChar for some reason.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13971


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]