http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47041
--- Comment #1 from Zdenek Sojka <zsojka at seznam dot cz> 2011-01-07 00:16:29 UTC --- Created attachment 22915 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=22915 reduced testcase Probably the same issue. $ gcc -fno-elide-constructors -std=c++0x pr47041.C pr47041.C: In constructor 'constexpr S::S(S&&)': pr47041.C:1:8: internal compiler error: in build_data_member_initialization, at cp/semantics.c:5498 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. (gdb) bt #0 fancy_abort (file=0x1224370 "/usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/semantics.c", line=5498, function=0x12276a0 "build_data_member_initialization") at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/diagnostic.c:892 #1 0x0000000000641dfe in build_data_member_initialization (t=<value optimized out>, vec=0x7fffffffcfc8) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/semantics.c:5498 #2 0x000000000064249a in build_constexpr_constructor_member_initializers (fun=0x7ffff5cce700, body=<value optimized out>) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/semantics.c:5570 #3 register_constexpr_fundef (fun=0x7ffff5cce700, body=<value optimized out>) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/semantics.c:5602 #4 0x0000000000530967 in maybe_save_function_definition (flags=0) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/decl.c:12808 #5 finish_function (flags=0) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/decl.c:12927 #6 0x00000000006238db in synthesize_method (fndecl=0x7ffff5cce700) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/method.c:759 #7 0x00000000005b5ae3 in mark_used (decl=0x7ffff5cdf000) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/decl2.c:4272 #8 0x000000000050fd2e in build_over_call (cand=0x1940100, flags=11, complain=3) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/call.c:6339 #9 0x000000000050ce6d in build_new_method_call (instance=0x7ffff7ec8930, fns=0x7ffff5cd9800, args=<value optimized out>, conversion_path=<value optimized out>, flags=11, fn_p=0x0, complain=3) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/call.c:6916 #10 0x000000000050dd64 in build_special_member_call (instance=0x7ffff7ec8930, name=<value optimized out>, args=0x7fffffffd378, binfo=0x7ffff5cd64e0, flags=11, complain=3) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/call.c:6608 #11 0x000000000060cef3 in ocp_convert (type=0x7ffff5ccd540, expr=0x7ffff5cc7630, convtype=0, flags=11) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/cvt.c:807 #12 0x00000000006007aa in check_return_expr (retval=<value optimized out>, no_warning=0x7fffffffd43f "") at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/typeck.c:7775 #13 0x000000000062e58f in finish_return_stmt (expr=<value optimized out>) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/semantics.c:800 #14 0x00000000005ce3d2 in cp_parser_jump_statement (parser=0x7ffff5cdc108, in_statement_expr=0x0, in_compound=1 '\001', if_p=<value optimized out>) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:9194 #15 cp_parser_statement (parser=0x7ffff5cdc108, in_statement_expr=0x0, in_compound=1 '\001', if_p=<value optimized out>) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:8080 #16 0x00000000005ced46 in cp_parser_statement_seq_opt (parser=0x7ffff5cdc108, in_statement_expr=0x0) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:8414 #17 0x00000000005cee7c in cp_parser_compound_statement (parser=0x7ffff5cdc108, in_statement_expr=0x0, in_try=<value optimized out>) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:8368 #18 0x00000000005e28dc in cp_parser_function_body (parser=0x7ffff5cdc108) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:16371 #19 cp_parser_ctor_initializer_opt_and_function_body (parser=0x7ffff5cdc108) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:16408 #20 0x00000000005e3052 in cp_parser_function_definition_after_declarator (parser=0x7ffff5cdc108, inline_p=0 '\000') at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:19814 #21 0x00000000005e465c in cp_parser_function_definition_from_specifiers_and_declarator (parser=0x7ffff5cdc108, decl_specifiers=0x7fffffffd740, checks=0x0, function_definition_allowed_p=1 '\001', member_p=0 '\000', declares_class_or_enum=0, function_definition_p=0x7fffffffd7af "\001\200\360\223\001") at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:19743 #22 cp_parser_init_declarator (parser=0x7ffff5cdc108, decl_specifiers=0x7fffffffd740, checks=0x0, function_definition_allowed_p=1 '\001', member_p=0 '\000', declares_class_or_enum=0, function_definition_p=0x7fffffffd7af "\001\200\360\223\001") at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:14518 #23 0x00000000005e987b in cp_parser_simple_declaration (parser=0x7ffff5cdc108, function_definition_allowed_p=1 '\001') at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:9689 #24 0x00000000005e9be7 in cp_parser_block_declaration (parser=0x7ffff5cdc108, statement_p=0 '\000') at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:9587 #25 cp_parser_block_declaration (parser=0x7ffff5cdc108, statement_p=0 '\000') at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:9521 #26 0x00000000005ed8f2 in cp_parser_declaration (parser=0x7ffff5cdc108) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:9492 #27 cp_parser_declaration (parser=0x7ffff5cdc108) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:9399 #28 0x00000000005ec41a in cp_parser_declaration_seq_opt (parser=0x7ffff5cdc108) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:9378 #29 0x00000000005edf69 in cp_parser_translation_unit () at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:3461 #30 c_parse_file () at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:25214 #31 0x00000000006c2195 in c_common_parse_file () at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/c-family/c-opts.c:1071 #32 0x0000000000a24598 in compile_file (argc=15, argv=0x7fffffffda78) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/toplev.c:579 #33 do_compile (argc=15, argv=0x7fffffffda78) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/toplev.c:1874 #34 toplev_main (argc=15, argv=0x7fffffffda78) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/toplev.c:1937 #35 0x00007ffff6586bbd in __libc_start_main () from /lib/libc.so.6 #36 0x00000000004fef2d in _start () Tested revisions: r168552 - crash r165699 - OK 4.5 r168062 - OK Probably regression from 4.5 (I can't edit the bug details).