https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99833

Marek Polacek <mpolacek at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|                            |2021-03-30
           Keywords|                            |ice-on-valid-code
   Target Milestone|---                         |8.5
             Status|UNCONFIRMED                 |NEW
            Summary|structured binding + if     |[8/9/10/11 Regression]
                   |init + generic lambda =     |structured binding + if
                   |internal compiler error     |init + generic lambda =
                   |                            |internal compiler error
                 CC|                            |mpolacek at gcc dot gnu.org
     Ever confirmed|0                           |1

--- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Confirmed.

$ xg++-7 -c 99833.C -std=c++17 -fconcepts
# ok
$ xg++-8 -c 99833.C -std=c++17 -fconcepts
99833.C: In instantiation of ‘f(auto:1&&) [with auto:1 = int]::<lambda(auto:2
...)> [with auto:2 = {}]’:
99833.C:8:10:   required from ‘auto f(auto:1&&) [with auto:1 = int]’
99833.C:12:13:   required from here
99833.C:6:32: internal compiler error: in tsubst_decomp_names, at cp/pt.c:16673
             if constexpr (auto [_, z] = y; requires { z; })
                                ^~~~~~
0xa44cc6 tsubst_decomp_names
        /home/mpolacek/src/gcc8/gcc/cp/pt.c:16673
0xa46041 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
        /home/mpolacek/src/gcc8/gcc/cp/pt.c:16837
0xa4b103 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
        /home/mpolacek/src/gcc8/gcc/cp/pt.c:17512
0xa46e75 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
        /home/mpolacek/src/gcc8/gcc/cp/pt.c:16961
0xa45012 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
        /home/mpolacek/src/gcc8/gcc/cp/pt.c:16714
0xa475be tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
        /home/mpolacek/src/gcc8/gcc/cp/pt.c:17014
0xa475be tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
        /home/mpolacek/src/gcc8/gcc/cp/pt.c:17014
0xa45012 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
        /home/mpolacek/src/gcc8/gcc/cp/pt.c:16714
0xa475be tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
        /home/mpolacek/src/gcc8/gcc/cp/pt.c:17014
0xa68a40 instantiate_decl(tree_node*, bool, bool)
        /home/mpolacek/src/gcc8/gcc/cp/pt.c:24161
0x90b1e3 maybe_instantiate_decl
        /home/mpolacek/src/gcc8/gcc/cp/decl2.c:5211
0x90bb8a mark_used(tree_node*, int)
        /home/mpolacek/src/gcc8/gcc/cp/decl2.c:5312
0x814c71 build_over_call
        /home/mpolacek/src/gcc8/gcc/cp/call.c:8286
0x804e91 build_op_call_1
        /home/mpolacek/src/gcc8/gcc/cp/call.c:4589
0x805053 build_op_call(tree_node*, vec<tree_node*, va_gc, vl_embed>**, int)
        /home/mpolacek/src/gcc8/gcc/cp/call.c:4618
0xa9a847 finish_call_expr(tree_node*, vec<tree_node*, va_gc, vl_embed>**, bool,
bool, int)
        /home/mpolacek/src/gcc8/gcc/cp/semantics.c:2567
0xa503bf tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
        /home/mpolacek/src/gcc8/gcc/cp/pt.c:18594
0xa4b422 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
        /home/mpolacek/src/gcc8/gcc/cp/pt.c:17530
0xa4512d tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
        /home/mpolacek/src/gcc8/gcc/cp/pt.c:16728
0xa45012 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
        /home/mpolacek/src/gcc8/gcc/cp/pt.c:16714

Reply via email to