https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63194
Bug ID: 63194 Summary: [4.9/5 Regression] ICE in maybe_explain_implicit_delete, at cp/method.c:1552 Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: trippels at gcc dot gnu.org CC: jason at gcc dot gnu.org Reduced from a huge boost testcase: markus@x4 tmp % cat horzcollisionbar.ii template <int> class A { public: A() noexcept(noexcept(0)) = default; }; class B { A<0> m_points; }; void fn1(A<0>, A<0>) { B(); } markus@x4 tmp % g++ -c -std=c++11 horzcollisionbar.ii horzcollisionbar.ii: In function ‘void fn1(A<0>, A<0>)’: horzcollisionbar.ii:9:26: error: use of deleted function ‘B::B()’ void fn1(A<0>, A<0>) { B(); } ^ horzcollisionbar.ii:6:7: note: ‘B::B()’ is implicitly deleted because the default definition would be ill-formed: class B { ^ horzcollisionbar.ii:6:7: error: use of deleted function ‘A<<anonymous> >::A() [with int <anonymous> = 0]’ horzcollisionbar.ii:4:3: internal compiler error: in maybe_explain_implicit_delete, at cp/method.c:1552 A() noexcept(noexcept(0)) = default; ^ 0x6ea0d8 maybe_explain_implicit_delete(tree_node*) ../../gcc/gcc/cp/method.c:1552 0x653df0 mark_used(tree_node*, int) ../../gcc/gcc/cp/decl2.c:4877 0x57233e build_over_call ../../gcc/gcc/cp/call.c:7019 0x57df65 build_new_method_call_1 ../../gcc/gcc/cp/call.c:8098 0x57df65 build_new_method_call(tree_node*, tree_node*, vec<tree_node*, va_gc, vl_embed>**, tree_node*, int, tree_node**, int) ../../gcc/gcc/cp/call.c:8168 0x6e00ef locate_fn_flags ../../gcc/gcc/cp/method.c:906 0x6e2eca walk_field_subobs ../../gcc/gcc/cp/method.c:1193 0x6e3a34 synthesized_method_walk ../../gcc/gcc/cp/method.c:1435 0x6e9f7f maybe_explain_implicit_delete(tree_node*) ../../gcc/gcc/cp/method.c:1541 0x653df0 mark_used(tree_node*, int) ../../gcc/gcc/cp/decl2.c:4877 0x572cc2 build_over_call ../../gcc/gcc/cp/call.c:7381 0x57df65 build_new_method_call_1 ../../gcc/gcc/cp/call.c:8098 0x57df65 build_new_method_call(tree_node*, tree_node*, vec<tree_node*, va_gc, vl_embed>**, tree_node*, int, tree_node**, int) ../../gcc/gcc/cp/call.c:8168 0x57eed9 build_special_member_call(tree_node*, tree_node*, vec<tree_node*, va_gc, vl_embed>**, tree_node*, int, int) ../../gcc/gcc/cp/call.c:7712 0x6d83ab build_value_init(tree_node*, int) ../../gcc/gcc/cp/init.c:350 0x620e74 build_functional_cast(tree_node*, tree_node*, int) ../../gcc/gcc/cp/typeck2.c:1928 0x687643 cp_parser_functional_cast ../../gcc/gcc/cp/parser.c:23581 0x68118b cp_parser_postfix_expression ../../gcc/gcc/cp/parser.c:5936 0x683e73 cp_parser_unary_expression ../../gcc/gcc/cp/parser.c:7287 0x684c38 cp_parser_binary_expression ../../gcc/gcc/cp/parser.c:8030 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. Started with r203989.