annotate gcc/testsuite/g++.dg/cpp2a/concepts-pr72415.C @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
145
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1 // PR c++/72415
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2 // { dg-do compile { target c++17 } }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
3 // { dg-options "-fconcepts" }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
4
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
5 template<int... Xs>
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
6 struct indices {};
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
7
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
8 template<typename Dummy>
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
9 struct foo_type {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
10 template<int... Indices>
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
11 static void impl(indices<Indices...>)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
12 requires (... && (Indices, true));
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
13
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
14 static auto caller()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
15 { return impl(indices<0, 1, 2> {}); }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
16 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
17
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
18 int main()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
19 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
20 // internal compiler error: in satisfy_predicate_constraint, at cp/constraint.cc:2013
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
21 foo_type<void>::caller();
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
22 }