http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46003
Ramana Radhakrishnan <ramana at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2010.12.03 09:32:03 Ever Confirmed|0 |1 --- Comment #1 from Ramana Radhakrishnan <ramana at gcc dot gnu.org> 2010-12-03 09:32:03 UTC --- Even something as simple as this brings the compiler down. struct A { A(int); operator void*() const; }; template<int> void foo(const A& x) { 0 ? x : 0; } Here's a backtrace from gdb if that helps. 0 fancy_abort (file=0xe5e0ed "../../combined/gcc/cp/tree.c", line=287, function=0xe60260 "build_target_expr") at ../../combined/gcc/diagnostic.c:892 #1 0x00000000005e7c68 in build_target_expr (decl=0x2ac80b326280, value=0x2ac80b42f678) at ../../combined/gcc/cp/tree.c:284 #2 0x00000000005eceeb in build_cplus_new (type=0x2ac80b43ff18, init=<value optimized out>) at ../../combined/gcc/cp/tree.c:450 #3 0x000000000049c742 in convert_like_real (convs=0x70ca550, expr=0x2ac80b42f678, fn=0x0, argnum=0, inner=<value optimized out>, issue_conversion_warnings=<value optimized out>, c_cast_p=0 '\0', complain=3) at ../../combined/gcc/cp/call.c:5300 #4 0x000000000049e0c9 in build_conditional_expr (arg1=0x2ac80b3128d0, arg2=0x2ac80b3128a0, arg3=0x2ac80b302f50, complain=3) at ../../combined/gcc/cp/call.c:3965 #5 0x000000000058a840 in build_x_conditional_expr (ifexp=0x2ac80b302f50, op1=0x2ac80b3128a0, op2=0xe60260, complain=3) at ../../combined/gcc/cp/typeck.c:5478 #6 0x000000000056d43e in cp_parser_assignment_expression (parser=0x2ac80b44d000, cast_p=<value optimized out>, pidk=0x0) at ../../combined/gcc/cp/parser.c:6972 #7 0x000000000056d6b0 in cp_parser_expression (parser=0xe5e0ed, cast_p=<value optimized out>, pidk=0xe60260) at ../../combined/gcc/cp/parser.c:7149 #8 0x000000000056da50 in cp_parser_expression_statement (parser=0x2ac80b44d000, in_statement_expr=0x0) at ../../combined/gcc/cp/parser.c:8264 #9 0x000000000057a496 in cp_parser_statement (parser=0x2ac80b44d000, in_statement_expr=0x0, in_compound=1 '\001', if_p=0x0) at ../../combined/gcc/cp/parser.c:8129 #10 0x000000000057b4d6 in cp_parser_statement_seq_opt (parser=0x2ac80b44d000, in_statement_expr=0x0) at ../../combined/gcc/cp/parser.c:8378 #11 0x000000000057b614 in cp_parser_compound_statement (parser=0x2ac80b44d000, in_statement_expr=0x0, in_try=<value optimized out>) at ../../combined/gcc/cp/parser.c:8332 #12 0x000000000057d8de in cp_parser_ctor_initializer_opt_and_function_body (parser=0x2ac80b44d000) at ../../combined/gcc/cp/parser.c:16319 #13 0x000000000057dc17 in cp_parser_function_definition_after_declarator (parser=0x2ac80b44d000, inline_p=0 '\0') at ../../combined/gcc/cp/parser.c:19747 #14 0x000000000057eb6c in cp_parser_init_declarator (parser=0x2ac80b44d000, decl_specifiers=0x7fff9f7fc170, checks=0x0, function_definition_allowed_p=1 '\001', member_p=0 '\0', declares_class_or_enum=<value optimized out>, function_definition_p=0x7fff9f7fc1df "\001") at ../../combined/gcc/cp/parser.c:19677 #15 0x000000000057eebb in cp_parser_single_declaration (parser=0x2ac80b44d000, checks=0x0, member_p=0 '\0', explicit_specialization_p=0 '\0', friend_p=0x7fff9f7fc247 "") at ../../combined/gcc/cp/parser.c:20002 #16 0x000000000057f0cb in cp_parser_template_declaration_after_export (parser=0x2ac80b44d000, member_p=96 '`') at ../../combined/gcc/cp/parser.c:19852 #17 0x00000000005840e2 in cp_parser_declaration (parser=0x2ac80b44d000) at ../../combined/gcc/cp/parser.c:9415 #18 0x0000000000582405 in cp_parser_declaration_seq_opt (parser=0x2ac80b44d000) at ../../combined/gcc/cp/parser.c:9337 #19 0x000000000058271b in c_parse_file () at ../../combined/gcc/cp/parser.c:3454 #20 0x000000000065ceed in c_common_parse_file () at ../../combined/gcc/c-family/c-opts.c:1071 #21 0x0000000000940017 in toplev_main (argc=3, argv=0x7fff9f7fc4a8) at ../../combined/gcc/toplev.c:579 #22 0x000000350401d974 in __libc_start_main () from /lib64/libc.so.6 #23 0x000000000048a669 in _start ()