https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105912
Bug ID: 105912 Summary: internal compiler error: in extract_call_expr, at cp/call.cc:7114 Product: gcc Version: 12.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: ldalessandro at gmail dot com Target Milestone: --- Created attachment 53113 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53113&action=edit output from -freport-bug ICE in complex constexpr/consteval context. I think this code is invalid. Debian testing gcc-12.1. - [ 83%] Building CXX object tests/CMakeFiles/expressions.dir/expressions.cpp.o /home/ldalessa/open/ttl/tests/expressions.cpp: In instantiation of ‘constexpr bool contraction(ttl::utils::type_args<I>) [with T = int]’: /home/ldalessa/open/ttl/tests/expressions.cpp:589:24: required from ‘constexpr bool tests(ttl::utils::type_args<I>) [with T = int]’ /home/ldalessa/open/ttl/tests/expressions.cpp:600:19: required from here /home/ldalessa/open/ttl/tests/expressions.cpp:149:13: internal compiler error: in extract_call_expr, at cp/call.cc:7114 149 | T dot = a(~i) * a(i); | ^~ 0x65a180 extract_call_expr(tree_node*) ../../src/gcc/cp/call.cc:7114 0x80b0cb tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../src/gcc/cp/pt.cc:20971 0x819ea1 tsubst_copy_and_build_call_args ../../src/gcc/cp/pt.cc:19937 0x80ae60 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../src/gcc/cp/pt.cc:20687 0x80a6a7 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../src/gcc/cp/pt.cc:20322 0x81b618 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.cc:19491 0x822f79 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.cc:16770 0x822f79 tsubst_init ../../src/gcc/cp/pt.cc:16774 0x81dc83 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.cc:18643 0x81cb62 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.cc:18462 0x81cb62 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.cc:18476 0x81c158 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.cc:18462 0x81c158 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.cc:18833 0x81ab7c tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.cc:26412 0x81ab7c instantiate_body ../../src/gcc/cp/pt.cc:26412 0x81b439 instantiate_decl(tree_node*, bool, bool) ../../src/gcc/cp/pt.cc:26704 0x6d4962 cxx_eval_call_expression ../../src/gcc/cp/constexpr.cc:2664 0x6d6f68 cxx_eval_constant_expression ../../src/gcc/cp/constexpr.cc:6720 0x6d9011 cxx_eval_constant_expression ../../src/gcc/cp/constexpr.cc:6828 0x6d6ebe cxx_eval_constant_expression ../../src/gcc/cp/constexpr.cc:7044