| // RUN: %clang_cc1 -std=c++2a -emit-pch %s -o %t | |
| // RUN: %clang_cc1 -std=c++2a -include-pch %t -verify %s | |
| // expected-no-diagnostics | |
| #ifndef HEADER | |
| #define HEADER | |
| template <typename T, typename U> | |
| concept not_same_as = true; | |
| template <int Kind> | |
| struct subrange { | |
| template <not_same_as<int> R> | |
| subrange(R) requires(Kind == 0); | |
| template <not_same_as<int> R> | |
| subrange(R) requires(Kind != 0); | |
| }; | |
| template <typename R> | |
| subrange(R) -> subrange<42>; | |
| int main() { | |
| int c; | |
| subrange s(c); | |
| } | |
| #endif |