http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46277
--- Comment #2 from H.J. Lu <hjl.tools at gmail dot com> 2010-11-02 21:07:44 UTC --- Created attachment 22241 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=22241 A testcase This isn't the correct C++ code. But the crash is similar: (gdb) r -fpreprocessed pr46277.ii -quiet -dumpbase pr46277.ii -mtune=generic -arch=x86-64 -auxbase pr46277 -O2 -version -o pr46277.s Starting program: /export/gnu/import/rrs/166167/usr/libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/cc1plus -fpreprocessed pr46277.ii -quiet -dumpbase pr46277.ii -mtune=generic -march=x86-64 -auxbase pr46277 -O2 -version -o pr46277.s GNU C++ (GCC) version 4.6.0 20101102 (experimental) [trunk revision 166167] (x86_64-unknown-linux-gnu) compiled by GNU C version 4.4.4 20100630 (Red Hat 4.4.4-10), GMP version 4.3.2, MPFR version 2.4.2-p3, MPC version 0.8.1 GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 GNU C++ (GCC) version 4.6.0 20101102 (experimental) [trunk revision 166167] (x86_64-unknown-linux-gnu) compiled by GNU C version 4.4.4 20100630 (Red Hat 4.4.4-10), GMP version 4.3.2, MPFR version 2.4.2-p3, MPC version 0.8.1 GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 Compiler executable checksum: 76aad85e17351790718ddccb4a2aa193 pr46277.ii:1:50: error: expected type-specifier before ‘char_traits’ pr46277.ii:1:50: error: expected ‘>’ before ‘char_traits’ pr46277.ii:2:32: error: template argument 2 is invalid pr46277.ii:2:42: error: invalid type in declaration before ‘;’ token pr46277.ii:4:84: error: ‘ggRGBEType’ does not name a type pr46277.ii:4:268: error: ‘ggRGBEType’ has not been declared pr46277.ii:4:817: error: ‘ggRGBEType’ does not name a type pr46277.ii: In member function ‘void ggRGBE::ShiftExponent(int)’: pr46277.ii:4:327: error: ‘data’ was not declared in this scope pr46277.ii: At global scope: pr46277.ii:6:41: error: ‘ggRaster’ has not been declared pr46277.ii:6:49: error: expected ‘,’ or ‘...’ before ‘<’ token pr46277.ii:8:35: error: expected constructor, destructor, or type conversion before ‘(’ token pr46277.ii:10:64: error: ‘ggRaster’ has not been declared pr46277.ii:10:72: error: expected ‘,’ or ‘...’ before ‘<’ token pr46277.ii: In member function ‘ggBoolean ggIO<T>::readbody(ifstream*, int)’: pr46277.ii:11:16: error: ‘type’ was not declared in this scope pr46277.ii:11:38: error: ‘GGPPM’ was not declared in this scope pr46277.ii:11:45: error: ‘count’ was not declared in this scope pr46277.ii:11:66: error: ‘GGGE’ was not declared in this scope pr46277.ii:11:85: error: ‘scanline’ was not declared in this scope pr46277.ii:11:107: error: ‘width’ was not declared in this scope Program received signal SIGSEGV, Segmentation fault. 0x00000000006ae43d in expand_default_init (binfo=0x7ffff1952000, true_exp=0x7ffff195f150, exp=0x7ffff195f150, init=0x0, flags=3, complain=3) at ../../src/gcc/cp/init.c:1446 1446 if (DECL_DECLARED_CONSTEXPR_P (fn)) Missing separate debuginfos, use: debuginfo-install cloog-ppl-0.15.9-0.0.f13.x86_64 elfutils-libelf-0.149-1.fc13.x86_64 glibc-2.12.1-4.0.f13.x86_64 gmp-4.3.2-0.0.f13.x86_64 libgcc-4.4.4-10.fc13.x86_64 libmpc-0.8.1-1.0.f13.x86_64 libstdc++-4.4.4-10.fc13.x86_64 mpfr-2.4.2-1.0.f13.x86_64 ppl-0.10.2-10.fc12.x86_64 zlib-1.2.3-23.fc12.x86_64 (gdb) bt #0 0x00000000006ae43d in expand_default_init (binfo=0x7ffff1952000, true_exp=0x7ffff195f150, exp=0x7ffff195f150, init=0x0, flags=3, complain=3) at ../../src/gcc/cp/init.c:1446 #1 0x00000000006ae849 in expand_aggr_init_1 (binfo=0x7ffff1952000, true_exp=0x7ffff195f150, exp=0x7ffff195f150, init=0x0, flags=3, complain=3) at ../../src/gcc/cp/init.c:1536 #2 0x00000000006adb88 in build_aggr_init (exp=0x7ffff195f150, init=0x0, flags=0, complain=3) at ../../src/gcc/cp/init.c:1351 #3 0x00000000006b54a6 in build_vec_init (base=0x7ffff1a1f960, maxindex=0x7ffff1a00e70, init=0x0, explicit_value_init_p=0 '\000', from_array=0, complain=3) at ../../src/gcc/cp/init.c:3164 #4 0x00000000006b20ee in build_new_1 (placement=0x7fffffffd3a8, type=0x7ffff194f2a0, nelts=0x7ffff19fd500, init=0x7fffffffd3a0, globally_qualified_p=0 '\000', complain=3) at ../../src/gcc/cp/init.c:2320 #5 0x00000000006b2bd3 in build_new (placement=0x7fffffffd3a8, type=0x7ffff194f2a0, nelts=0x7ffff19fd500, init=0x7fffffffd3a0, use_global_new=0, complain=3) at ../../src/gcc/cp/init.c:2582 #6 0x00000000006376fb in cp_parser_new_expression (parser=0x7ffff194e000) at ../../src/gcc/cp/parser.c:6197 #7 0x0000000000636fcb in cp_parser_unary_expression (parser=0x7ffff194e000, address_p=0 '\000', cast_p=0 '\000', pidk=0x0) at ../../src/gcc/cp/parser.c:5890 #8 0x0000000000637f5f in cp_parser_cast_expression (parser=0x7ffff194e000, ---Type <return> to continue, or q <return> to quit--- address_p=0 '\000', cast_p=0 '\000', pidk=0x0) at ../../src/gcc/cp/parser.c:6653 #9 0x0000000000637fc3 in cp_parser_binary_expression (parser=0x7ffff194e000, cast_p=0 '\000', no_toplevel_fold_p=0 '\000', prec=PREC_NOT_OPERATOR, pidk=0x0) at ../../src/gcc/cp/parser.c:6750 #10 0x000000000063858f in cp_parser_assignment_expression ( parser=0x7ffff194e000, cast_p=0 '\000', pidk=0x0) at ../../src/gcc/cp/parser.c:6966 #11 0x000000000063886d in cp_parser_constant_expression ( parser=0x7ffff194e000, allow_non_constant_p=1 '\001', non_constant_p=0x7fffffffd7ef "") at ../../src/gcc/cp/parser.c:7191 #12 0x000000000064980a in cp_parser_initializer_clause (parser=0x7ffff194e000, non_constant_p=0x7fffffffd7ef "") at ../../src/gcc/cp/parser.c:16409 #13 0x00000000006385ef in cp_parser_assignment_expression ( parser=0x7ffff194e000, cast_p=0 '\000', pidk=0x0) at ../../src/gcc/cp/parser.c:6985 #14 0x0000000000638764 in cp_parser_expression (parser=0x7ffff194e000, cast_p=0 '\000', pidk=0x0) at ../../src/gcc/cp/parser.c:7112 #15 0x000000000063af75 in cp_parser_expression_statement ( parser=0x7ffff194e000, in_statement_expr=0x0) at ../../src/gcc/cp/parser.c:8226 #16 0x000000000063ac42 in cp_parser_statement (parser=0x7ffff194e000, in_statement_expr=0x0, in_compound=1 '\001', if_p=0x0) ---Type <return> to continue, or q <return> to quit--- at ../../src/gcc/cp/parser.c:8091 #17 0x000000000063b568 in cp_parser_statement_seq_opt (parser=0x7ffff194e000, in_statement_expr=0x0) at ../../src/gcc/cp/parser.c:8340 #18 0x000000000063b467 in cp_parser_compound_statement (parser=0x7ffff194e000, in_statement_expr=0x0, in_try=0 '\000') at ../../src/gcc/cp/parser.c:8294 #19 0x000000000063cde7 in cp_parser_implicitly_scoped_statement ( parser=0x7ffff194e000, if_p=0x0) at ../../src/gcc/cp/parser.c:9202 #20 0x000000000063b8d7 in cp_parser_selection_statement ( parser=0x7ffff194e000, if_p=0x0) at ../../src/gcc/cp/parser.c:8486 #21 0x000000000063aaa1 in cp_parser_statement (parser=0x7ffff194e000, in_statement_expr=0x0, in_compound=1 '\001', if_p=0x0) at ../../src/gcc/cp/parser.c:7997 #22 0x000000000063b568 in cp_parser_statement_seq_opt (parser=0x7ffff194e000, in_statement_expr=0x0) at ../../src/gcc/cp/parser.c:8340 #23 0x000000000063b467 in cp_parser_compound_statement (parser=0x7ffff194e000, in_statement_expr=0x0, in_try=0 '\000') at ../../src/gcc/cp/parser.c:8294 #24 0x0000000000648eb9 in cp_parser_function_body (parser=0x7ffff194e000) at ../../src/gcc/cp/parser.c:16265 #25 0x0000000000649424 in cp_parser_ctor_initializer_opt_and_function_body ( parser=0x7ffff194e000) at ../../src/gcc/cp/parser.c:16302 #26 0x0000000000650554 in cp_parser_function_definition_after_declarator ( parser=0x7ffff194e000, inline_p=0 '\000') at ../../src/gcc/cp/parser.c:19589 ---Type <return> to continue, or q <return> to quit--- #27 0x0000000000650413 in cp_parser_function_definition_from_specifiers_and_declarator (parser=0x7ffff194e000, decl_specifiers=0x7fffffffde50, attributes=0x0, declarator=0x1b7da30) at ../../src/gcc/cp/parser.c:19518 #28 0x0000000000645807 in cp_parser_init_declarator (parser=0x7ffff194e000, decl_specifiers=0x7fffffffde50, checks=0x0, function_definition_allowed_p=1 '\001', member_p=0 '\000', declares_class_or_enum=0, function_definition_p=0x7fffffffde4f "\001") at ../../src/gcc/cp/parser.c:14412 #29 0x0000000000650e4c in cp_parser_single_declaration (parser=0x7ffff194e000, checks=0x0, member_p=0 '\000', explicit_specialization_p=0 '\000', friend_p=0x7fffffffdf0f "") at ../../src/gcc/cp/parser.c:19843 #30 0x00000000006507cc in cp_parser_template_declaration_after_export ( parser=0x7ffff194e000, member_p=0 '\000') at ../../src/gcc/cp/parser.c:19693 #31 0x000000000063f901 in cp_parser_template_declaration ( parser=0x7ffff194e000, member_p=0 '\000') at ../../src/gcc/cp/parser.c:11030 #32 0x000000000063d25d in cp_parser_declaration (parser=0x7ffff194e000) at ../../src/gcc/cp/parser.c:9369 #33 0x000000000063cff9 in cp_parser_declaration_seq_opt (parser=0x7ffff194e000) at ../../src/gcc/cp/parser.c:9299 #34 0x00000000006321a9 in cp_parser_translation_unit (parser=0x7ffff194e000) at ../../src/gcc/cp/parser.c:3432 ---Type <return> to continue, or q <return> to quit--- #35 0x000000000065e76d in c_parse_file () at ../../src/gcc/cp/parser.c:24918 #36 0x00000000007ea80a in c_common_parse_file (set_yydebug=0) at ../../src/gcc/c-family/c-opts.c:1162 #37 0x0000000000c700be in compile_file () at ../../src/gcc/toplev.c:919 #38 0x0000000000c7259c in do_compile () at ../../src/gcc/toplev.c:2359 #39 0x0000000000c726c8 in toplev_main (argc=14, argv=0x7fffffffe258) at ../../src/gcc/toplev.c:2419 #40 0x0000000000809d14 in main (argc=14, argv=0x7fffffffe258) at ../../src/gcc/main.c:36 (gdb)