https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123726
Marek Polacek <mpolacek at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |mpolacek at gcc dot gnu.org
Summary|[C++26] ICE in template for |[reflection] ICE in
|with reflection on local |template for with
|struct |reflection on local struct
Ever confirmed|0 |1
Status|UNCONFIRMED |NEW
Last reconfirmed| |2026-01-19
--- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
```
struct Data {
int a;
int b;
int c;
};
int main(){
Data d{1,2,3};
template for (const auto m : d) {
d.[: ^^m :] = 5;
}
}
```
123726.C: In instantiation of ‘template for’ iteration 1:
required from here
123726.C:10:30:
10 | template for (const auto m : d) {
| ^
123726.C:11:18: internal compiler error: in finish_class_member_access_expr, at
cp/typeck.cc:3651
11 | d.[: ^^m :] = 5;
| ~~~~~~~~~^~
0x317dce6 internal_error(char const*, ...)
/home/mpolacek/src/gcc/gcc/diagnostic-global-context.cc:787
0x318c555 fancy_abort(char const*, int, char const*)
/home/mpolacek/src/gcc/gcc/diagnostics/context.cc:1805
0x91b6c6 finish_class_member_access_expr(cp_expr, tree_node*, bool, int, bool)
/home/mpolacek/src/gcc/gcc/cp/typeck.cc:3651
0x811804 tsubst_expr(tree_node*, tree_node*, int, tree_node*)
/home/mpolacek/src/gcc/gcc/cp/pt.cc:22419
0x80d6cf tsubst_expr(tree_node*, tree_node*, int, tree_node*)
/home/mpolacek/src/gcc/gcc/cp/pt.cc:21739
0x806fe9 tsubst_stmt
/home/mpolacek/src/gcc/gcc/cp/pt.cc:20561
0x7fd24f tsubst_stmt
/home/mpolacek/src/gcc/gcc/cp/pt.cc:19352
0x847fa8 finish_expansion_stmt(tree_node*, tree_node*, int, tree_node*)
/home/mpolacek/src/gcc/gcc/cp/pt.cc:33372
0x71a64e cp_parser_expansion_statement
/home/mpolacek/src/gcc/gcc/cp/parser.cc:16646
0x713d6b cp_parser_statement
/home/mpolacek/src/gcc/gcc/cp/parser.cc:14251
0x7157d7 cp_parser_statement_seq_opt
/home/mpolacek/src/gcc/gcc/cp/parser.cc:14996
0x715347 cp_parser_compound_statement
/home/mpolacek/src/gcc/gcc/cp/parser.cc:14843
0x734f9a cp_parser_function_body
/home/mpolacek/src/gcc/gcc/cp/parser.cc:28714
0x7352f1 cp_parser_ctor_initializer_opt_and_function_body
/home/mpolacek/src/gcc/gcc/cp/parser.cc:28765
0x744fef cp_parser_function_definition_after_declarator
/home/mpolacek/src/gcc/gcc/cp/parser.cc:35962
0x744dd5 cp_parser_function_definition_from_specifiers_and_declarator
/home/mpolacek/src/gcc/gcc/cp/parser.cc:35877
0x72f2bb cp_parser_init_declarator
/home/mpolacek/src/gcc/gcc/cp/parser.cc:25921
0x71d6f7 cp_parser_simple_declaration
/home/mpolacek/src/gcc/gcc/cp/parser.cc:17991
0x71d284 cp_parser_block_declaration
/home/mpolacek/src/gcc/gcc/cp/parser.cc:17813
0x71ccb4 cp_parser_declaration
/home/mpolacek/src/gcc/gcc/cp/parser.cc:17614