[Bug c++/102047] New: ICE in template_parms_to_args passing lambda-quoted constraint to meta-concept
ed at catmur dot uk
gcc-bugzilla@gcc.gnu.org
Tue Aug 24 16:25:52 GMT 2021
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102047
Bug ID: 102047
Summary: ICE in template_parms_to_args passing lambda-quoted
constraint to meta-concept
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: ed at catmur dot uk
Target Milestone: ---
template<class> concept A = true;
template<class T, auto L> concept M = requires {
L.template operator()<T()>();
};
template<class T> concept C = requires(T t) {
{ t.x } -> M<[]<A>(){}>;
};
struct S { double x; };
static_assert(C<S>);
g++
(Compiler-Explorer-Build-gcc-8ca7fa84a3af355c3e2bbda2acc61934c16078b2-binutils-2.36.1)
12.0.0 20210823 (experimental)
6:18: internal compiler error: Segmentation fault
6 | { t.x } -> M<[]<A>(){}>;
| ^~~~~~~~~
0x1de2c99 internal_error(char const*, ...)
0x99d20d template_parms_to_args(tree_node*)
0x9e74ea tsubst_lambda_expr(tree_node*, tree_node*, int, tree_node*)
0x9db8d0 tsubst_template_arg(tree_node*, tree_node*, int, tree_node*)
0x7d702a constraints_satisfied_p(tree_node*, tree_node*)
0x9a6a67 do_auto_deduction(tree_node*, tree_node*, tree_node*, int,
auto_deduction_context, tree_node*, int)
0x7d6fe2 tsubst_requires_expr(tree_node*, tree_node*, int, tree_node*)
0x7d7088 evaluate_concept_check(tree_node*)
0x7c26f4 maybe_constant_value(tree_node*, tree_node*, bool)
0xa2b65d finish_static_assert(tree_node*, tree_node*, unsigned int, bool, bool)
0x980395 c_parse_file()
0xb05462 c_common_parse_file()
Clang also ICEs; MSVC accepts.
Possibly related to #99465.
More information about the Gcc-bugs
mailing list