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

Reply via email to