https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121795
Bug ID: 121795 Summary: ICE for type pack indexing Product: gcc Version: 15.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: geza.herman at gmail dot com Target Milestone: --- This little program generates ICE (compile it with "g++ -c -std=gnu++26"). (happens with gcc 16.0 as well) --- 8< --- template <typename TARGET, typename SOURCE> constexpr TARGET implicit_cast(SOURCE &&source) { return static_cast<decltype(source) &&>(source); } template <typename FIRST_TYPE, typename... TYPES> constexpr FIRST_TYPE implicit_cast(TYPES...[sizeof...(TYPES) - 1] value) { return implicit_cast<TYPES...>(value); } int main() { implicit_cast<int, int>(0); } --- 8< --- ice.cpp: In function ‘int main()’: ice.cpp:12:28: internal compiler error: in unify, at cp/pt.cc:25999 12 | implicit_cast<int, int>(0); | ~~~~~~~~~~~~~~~~~~~~~~~^~~ 0x169bd3d internal_error(char const*, ...) ../../src/gcc/diagnostic-global-context.cc:517 0x169be0f fancy_abort(char const*, int, char const*) ../../src/gcc/diagnostic.cc:1749 0xa2577c unify ../../src/gcc/cp/pt.cc:25999 0x1aa912d more_specialized_fn(tree_node*, tree_node*, int) ../../src/gcc/cp/pt.cc:26361 0x193a7b4 joust ../../src/gcc/cp/call.cc:13519 0x187e293 tourney ../../src/gcc/cp/call.cc:13834 0x1878d87 perform_overload_resolution ../../src/gcc/cp/call.cc:5126 0x187452c build_new_function_call(tree_node*, vec<tree_node*, va_gc, vl_embed>**, int) ../../src/gcc/cp/call.cc:5218 0x187336d finish_call_expr(tree_node*, vec<tree_node*, va_gc, vl_embed>**, bool, bool, int) ../../src/gcc/cp/semantics.cc:3504 0x17c7bd8 cp_parser_postfix_expression ../../src/gcc/cp/parser.cc:8474 0x17c6ae3 cp_parser_unary_expression ../../src/gcc/cp/parser.cc:9735 0x17c5bbb cp_parser_cast_expression ../../src/gcc/cp/parser.cc:10650 0x17c4e65 cp_parser_binary_expression ../../src/gcc/cp/parser.cc:10753 0x17c4192 cp_parser_assignment_expression ../../src/gcc/cp/parser.cc:11098 0x1807c0c cp_parser_expression ../../src/gcc/cp/parser.cc:11281 0x1804d8b cp_parser_expression_statement ../../src/gcc/cp/parser.cc:13598 0x18024a0 cp_parser_statement ../../src/gcc/cp/parser.cc:13342 0x18020c4 cp_parser_statement_seq_opt ../../src/gcc/cp/parser.cc:13861 0x1800b58 cp_parser_compound_statement ../../src/gcc/cp/parser.cc:13708 0x17ff093 cp_parser_function_body ../../src/gcc/cp/parser.cc:26712