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.