https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86002
Marek Polacek <mpolacek at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mpolacek at gcc dot gnu.org Assignee|unassigned at gcc dot gnu.org |mpolacek at gcc dot gnu.org Ever confirmed|0 |1 Last reconfirmed| |2020-07-23 Status|UNCONFIRMED |ASSIGNED --- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> --- GCC 9 ICEs 86002.C: In instantiation of ‘int f(T) [with T = X]’: 86002.C:15:17: required from here 86002.C:7:30: internal compiler error: in tsubst_copy, at cp/pt.c:15680 7 | if constexpr (requires { t.i; }) | ^ 0xa07611 tsubst_copy /home/mpolacek/src/gcc9/gcc/cp/pt.c:15680 0xa1dd78 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) /home/mpolacek/src/gcc9/gcc/cp/pt.c:19676 0xa1e716 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) /home/mpolacek/src/gcc9/gcc/cp/pt.c:19794 0xa16968 tsubst_non_call_postfix_expression /home/mpolacek/src/gcc9/gcc/cp/pt.c:18159 0xa1c97b tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) /home/mpolacek/src/gcc9/gcc/cp/pt.c:19455 0xa16347 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) /home/mpolacek/src/gcc9/gcc/cp/pt.c:18067 0x8a018e tsubst_simple_requirement /home/mpolacek/src/gcc9/gcc/cp/constraint.cc:1778 0x8a018e tsubst_requirement /home/mpolacek/src/gcc9/gcc/cp/constraint.cc:1836 0x8a018e tsubst_requirement_body /home/mpolacek/src/gcc9/gcc/cp/constraint.cc:1859 0x8a018e tsubst_requires_expr(tree_node*, tree_node*, int, tree_node*) /home/mpolacek/src/gcc9/gcc/cp/constraint.cc:1891 0xa1e641 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) /home/mpolacek/src/gcc9/gcc/cp/pt.c:19782 0xa16347 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) /home/mpolacek/src/gcc9/gcc/cp/pt.c:18067 0xa11390 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) /home/mpolacek/src/gcc9/gcc/cp/pt.c:17417 0xa11afb tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) /home/mpolacek/src/gcc9/gcc/cp/pt.c:17472 0xa34241 instantiate_decl(tree_node*, bool, bool) /home/mpolacek/src/gcc9/gcc/cp/pt.c:24975 0xa34c1a instantiate_pending_templates(int) /home/mpolacek/src/gcc9/gcc/cp/pt.c:25091 0x915c43 c_parse_final_cleanups() /home/mpolacek/src/gcc9/gcc/cp/decl2.c:4818 But GCC 10+ compiles it fine.