1 // RUN: %clang_cc1 -std=c++2a -emit-pch %s -o %t
2 // RUN: %clang_cc1 -std=c++2a -include-pch %t -verify %s
3 
4 // expected-no-diagnostics
5 
6 #ifndef HEADER
7 #define HEADER
8 
9 template <typename T, typename U>
10 concept not_same_as = true;
11 
12 template <int Kind>
13 struct subrange {
14   template <not_same_as<int> R>
15   subrange(R) requires(Kind == 0);
16 
17   template <not_same_as<int> R>
18   subrange(R) requires(Kind != 0);
19 };
20 
21 template <typename R>
22 subrange(R) -> subrange<42>;
23 
main()24 int main() {
25   int c;
26   subrange s(c);
27 }
28 
29 #endif
30