https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88969
Bug ID: 88969 Summary: ICE in build_op_delete_call, at cp/call.c:6509 Product: gcc Version: 9.0 Status: UNCONFIRMED Keywords: ice-on-invalid-code Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- g++-9.0.0-alpha20190120 snapshot (r268107) ICEs when compiling the following snippet reduced from test/SemaCXX/cxx2a-destroying-delete.cpp from clang 7.0.1 test suite: namespace std { struct destroying_delete_t { struct __construct { explicit __construct() = default; }; }; } namespace delete_selection { struct B { void operator delete(void*) = delete; void operator delete(B *, std::destroying_delete_t) = delete; }; void delete_B(B *b) { delete b; } } % g++-9.0.0-alpha20190120 -c mi9qy2yt.cpp mi9qy2yt.cpp: In function 'void delete_selection::delete_B(delete_selection::B*)': mi9qy2yt.cpp:12:32: internal compiler error: in build_op_delete_call, at cp/call.c:6509 12 | void delete_B(B *b) { delete b; } | ^ 0x5b81f3 build_op_delete_call(tree_code, tree_node*, tree_node*, bool, tree_node*, tree_node*, int) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/call.c:6509 0x9454d8 build_delete(tree_node*, tree_node*, special_function_kind, int, int, int) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/init.c:4825 0x9b6036 cp_parser_unary_expression /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:8196 0x98eb02 cp_parser_cast_expression /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:9345 0x98f3da cp_parser_binary_expression /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:9447 0x990546 cp_parser_assignment_expression /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:9744 0x99091a cp_parser_expression /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:9911 0x993e95 cp_parser_expression_statement /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:11449 0x99f578 cp_parser_statement /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:11245 0x9a0c38 cp_parser_statement_seq_opt /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:11592 0x9a0d18 cp_parser_compound_statement /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:11546 0x9bab16 cp_parser_function_body /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:22530 0x9bab16 cp_parser_ctor_initializer_opt_and_function_body /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:22567 0x9bb3f0 cp_parser_function_definition_after_declarator /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:27630 0x9bc1d4 cp_parser_function_definition_from_specifiers_and_declarator /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:27546 0x9bc1d4 cp_parser_init_declarator /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:20205 0x99d518 cp_parser_simple_declaration /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:13476 0x9c2cdd cp_parser_declaration /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:13173 0x9c389c cp_parser_declaration_seq_opt /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:13049 0x9c389c cp_parser_namespace_body /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:19252