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

            Bug ID: 67685
           Summary: ICE on invalid requires expression
           Product: gcc
           Version: c++-concepts
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: colu...@gmx-topmail.de
  Target Milestone: ---

void f(auto i) {requires {i;};}

int main() {f(0);}

=>

prog.cc: In instantiation of 'void f(auto:1) [with auto:1 = int]':
prog.cc:3:16:   required from here
prog.cc:1:17: internal compiler error: in tsubst_copy, at cp/pt.c:13689
 void f(auto i) {requires {i;};}
                 ^
0x5ebae8 tsubst_copy
        /home/heads/gcc/gcc-source/gcc/cp/pt.c:13689
0x5ec1f9 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
        /home/heads/gcc/gcc-source/gcc/cp/pt.c:16451
0x5e8201 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
        /home/heads/gcc/gcc-source/gcc/cp/pt.c:15257
0x6dcd39 tsubst_simple_requirement
        /home/heads/gcc/gcc-source/gcc/cp/constraint.cc:1506
0x6dcd39 tsubst_requirement
        /home/heads/gcc/gcc-source/gcc/cp/constraint.cc:1562
0x6dcd39 tsubst_requirement_body
        /home/heads/gcc/gcc-source/gcc/cp/constraint.cc:1585
0x6dcd39 tsubst_requires_expr(tree_node*, tree_node*, int, tree_node*)
        /home/heads/gcc/gcc-source/gcc/cp/constraint.cc:1616
0x5ed221 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
        /home/heads/gcc/gcc-source/gcc/cp/pt.c:16609
0x5e8201 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
        /home/heads/gcc/gcc-source/gcc/cp/pt.c:15257
0x5e7293 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
        /home/heads/gcc/gcc-source/gcc/cp/pt.c:14668
0x5e8095 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
        /home/heads/gcc/gcc-source/gcc/cp/pt.c:14840
0x5e6e31 instantiate_decl(tree_node*, int, bool)
        /home/heads/gcc/gcc-source/gcc/cp/pt.c:21387
0x60233b instantiate_pending_templates(int)
        /home/heads/gcc/gcc-source/gcc/cp/pt.c:21502
0x61fa4d c_parse_final_cleanups()
        /home/heads/gcc/gcc-source/gcc/cp/decl2.c:4570


This code is ill-formed as per [expr.prim.req]/4, anyway; The
requires-expression is not allowed in an expression-statement.

Reply via email to