xref: /llvm-project/clang/test/PCH/cxx2a-constraints-crash.cpp (revision 31dd03cb3ee73e20b8220c2bf991c1afcba923c5)
1 // RUN: %clang_cc1 -std=c++2a -fallow-pch-with-compiler-errors -emit-pch -o %t %s -verify
2 // RUN: %clang_cc1 -std=c++2a -fallow-pch-with-compiler-errors -include-pch %t %s -verify
3 
4 #ifndef HEADER
5 #define HEADER
6 
7 template <typename T, typename U>
8 concept not_same_as = true;
9 
10 template <int Kind>
11 struct subrange {
12   template <not_same_as<int> R>
13   subrange(R) requires(Kind == 0);
14 
15   template <not_same_as<int> R>
16   subrange(R) requires(Kind != 0);
17 };
18 
19 template <typename R>
20 subrange(R) -> subrange<42>;
21 
22 int main() {
23   int c;
24   subrange s(c);
25 }
26 
27 #endif
28 
29 namespace GH99036 {
30 
31 template <typename T>
32 concept C; // expected-error {{expected '='}}
33 
34 template <C U> void f();
35 
36 } // namespace GH99036
37