This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/13971] [3.4/3.5 Regression] ICE when compiling koffice-cvs (in build_conditional_expr, at cp/call.c:3068)
- From: "pinskia at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 2 Feb 2004 17:51:01 -0000
- Subject: [Bug c++/13971] [3.4/3.5 Regression] ICE when compiling koffice-cvs (in build_conditional_expr, at cp/call.c:3068)
- References: <20040202002138.13971.ma1flfs@bath.ac.uk>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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