https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124496
Bug ID: 124496
Summary: [reflection] ICE on invalid splice
Product: gcc
Version: 16.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: mpolacek at gcc dot gnu.org
Target Milestone: ---
```
template<unsigned>
struct A {};
template<int N>
static constexpr int var = N;
template<decltype(^^void) R, typename T>
constexpr auto f () -> A<([:R<T>:])> { return {}; }
constexpr auto a = f<^^var, int>();
```
$ ./cc1plus -quiet -std=c++26 -freflection ice5.C
ice5.C:8:33: internal compiler error: in cp_parser_splice_expression, at
cp/parser.cc:6321
8 | constexpr auto f () -> A<([:R<T>:])> { return {}; }
| ^~
0x319b2f2 internal_error(char const*, ...)
/home/mpolacek/src/gcc/gcc/diagnostic-global-context.cc:787
0x31a9bff fancy_abort(char const*, int, char const*)
/home/mpolacek/src/gcc/gcc/diagnostics/context.cc:1813
0x707e4f cp_parser_splice_expression
/home/mpolacek/src/gcc/gcc/cp/parser.cc:6321
0x709340 cp_parser_primary_expression
/home/mpolacek/src/gcc/gcc/cp/parser.cc:6825
0x70ec3f cp_parser_postfix_expression
/home/mpolacek/src/gcc/gcc/cp/parser.cc:8909
0x713e0f cp_parser_unary_expression
/home/mpolacek/src/gcc/gcc/cp/parser.cc:10621
0x715617 cp_parser_cast_expression
/home/mpolacek/src/gcc/gcc/cp/parser.cc:11536
0x71571a cp_parser_binary_expression
/home/mpolacek/src/gcc/gcc/cp/parser.cc:11639
0x716a79 cp_parser_assignment_expression
/home/mpolacek/src/gcc/gcc/cp/parser.cc:11992
0x7172b3 cp_parser_expression
/home/mpolacek/src/gcc/gcc/cp/parser.cc:12189
0x708f4c cp_parser_primary_expression
/home/mpolacek/src/gcc/gcc/cp/parser.cc:6756
0x70ec3f cp_parser_postfix_expression
/home/mpolacek/src/gcc/gcc/cp/parser.cc:8909
0x713e0f cp_parser_unary_expression
/home/mpolacek/src/gcc/gcc/cp/parser.cc:10621
0x715617 cp_parser_cast_expression
/home/mpolacek/src/gcc/gcc/cp/parser.cc:11536
0x71571a cp_parser_binary_expression
/home/mpolacek/src/gcc/gcc/cp/parser.cc:11639
0x716a79 cp_parser_assignment_expression
/home/mpolacek/src/gcc/gcc/cp/parser.cc:11992
0x72f63b cp_parser_template_argument
/home/mpolacek/src/gcc/gcc/cp/parser.cc:21998
0x72eb6c cp_parser_template_argument_list
/home/mpolacek/src/gcc/gcc/cp/parser.cc:21689
0x751c5a cp_parser_enclosed_template_argument_list
/home/mpolacek/src/gcc/gcc/cp/parser.cc:36813
0x72d792 cp_parser_template_id
/home/mpolacek/src/gcc/gcc/cp/parser.cc:21199