https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90171
Bug ID: 90171 Summary: [9 Regression] ICE in build_op_delete_call, at cp/call.c:6630 Product: gcc Version: 9.0 Status: UNCONFIRMED 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-alpha20190414 snapshot (r270355) ICEs when compiling the following testcase extracted from test/SemaCXX/cxx2a-destroying-delete.cpp from the clang 8.0.0 test suite w/ -std=c++17: namespace std { using size_t = decltype(sizeof(0)); enum class align_val_t : size_t; struct destroying_delete_t { }; } struct A { void operator delete(A*, std::destroying_delete_t, std::align_val_t); void operator delete(A*, std::destroying_delete_t, std::size_t, std::align_val_t); }; void delete_A(A *a) { delete a; } % g++-9.0.0-alpha20190414 -std=c++17 -c hmayxrtu.cpp hmayxrtu.cpp: In function 'void delete_A(A*)': hmayxrtu.cpp:13:30: internal compiler error: in build_op_delete_call, at cp/call.c:6630 13 | void delete_A(A *a) { delete a; } | ^ 0x5a373b 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_alpha20190414/work/gcc-9-20190414/gcc/cp/call.c:6630 0x937168 build_delete(tree_node*, tree_node*, special_function_kind, int, int, int) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190414/work/gcc-9-20190414/gcc/cp/init.c:4849 0x9a7e3e cp_parser_unary_expression /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190414/work/gcc-9-20190414/gcc/cp/parser.c:8209 0x9802d2 cp_parser_cast_expression /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190414/work/gcc-9-20190414/gcc/cp/parser.c:9357 0x980b7a cp_parser_binary_expression /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190414/work/gcc-9-20190414/gcc/cp/parser.c:9460 0x981bb6 cp_parser_assignment_expression /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190414/work/gcc-9-20190414/gcc/cp/parser.c:9758 0x981f39 cp_parser_expression /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190414/work/gcc-9-20190414/gcc/cp/parser.c:9925 0x985455 cp_parser_expression_statement /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190414/work/gcc-9-20190414/gcc/cp/parser.c:11514 0x9912ec cp_parser_statement /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190414/work/gcc-9-20190414/gcc/cp/parser.c:11310 0x9929e8 cp_parser_statement_seq_opt /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190414/work/gcc-9-20190414/gcc/cp/parser.c:11657 0x992ac8 cp_parser_compound_statement /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190414/work/gcc-9-20190414/gcc/cp/parser.c:11611 0x9ac975 cp_parser_function_body /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190414/work/gcc-9-20190414/gcc/cp/parser.c:22660 0x9ac975 cp_parser_ctor_initializer_opt_and_function_body /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190414/work/gcc-9-20190414/gcc/cp/parser.c:22711 0x9ad2d6 cp_parser_function_definition_after_declarator /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190414/work/gcc-9-20190414/gcc/cp/parser.c:27802 0x9ae0ac cp_parser_function_definition_from_specifiers_and_declarator /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190414/work/gcc-9-20190414/gcc/cp/parser.c:27718 0x9ae0ac cp_parser_init_declarator /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190414/work/gcc-9-20190414/gcc/cp/parser.c:20297 0x98f245 cp_parser_simple_declaration /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190414/work/gcc-9-20190414/gcc/cp/parser.c:13541 0x9b432d cp_parser_declaration /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190414/work/gcc-9-20190414/gcc/cp/parser.c:13238 0x9b4ac1 cp_parser_translation_unit /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190414/work/gcc-9-20190414/gcc/cp/parser.c:4701 0x9b4ac1 c_parse_file() /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190414/work/gcc-9-20190414/gcc/cp/parser.c:41181