15d98ba60SSaar Raz // RUN: %clang_cc1 -std=c++2a -emit-pch %s -o %t
25d98ba60SSaar Raz // RUN: %clang_cc1 -std=c++2a -include-pch %t -verify %s
35d98ba60SSaar Raz 
4*a45f713cSLuboš Luňák // RUN: %clang_cc1 -std=c++2a -emit-pch -fpch-instantiate-templates %s -o %t
5*a45f713cSLuboš Luňák // RUN: %clang_cc1 -std=c++2a -include-pch %t -verify %s
6*a45f713cSLuboš Luňák 
75d98ba60SSaar Raz // expected-no-diagnostics
85d98ba60SSaar Raz 
95d98ba60SSaar Raz #ifndef HEADER
105d98ba60SSaar Raz #define HEADER
115d98ba60SSaar Raz 
125d98ba60SSaar Raz template<typename... T>
135d98ba60SSaar Raz concept C = true;
145d98ba60SSaar Raz 
155d98ba60SSaar Raz namespace n {
165d98ba60SSaar Raz   template<typename... T>
175d98ba60SSaar Raz   concept C = true;
185d98ba60SSaar Raz }
195d98ba60SSaar Raz 
f()205d98ba60SSaar Raz void f() {
215d98ba60SSaar Raz   (void)C<int>;
225d98ba60SSaar Raz   (void)C<int, void>;
235d98ba60SSaar Raz   (void)n::C<void>;
245d98ba60SSaar Raz }
255d98ba60SSaar Raz 
265d98ba60SSaar Raz #else /*included pch*/
275d98ba60SSaar Raz 
main()285d98ba60SSaar Raz int main() {
295d98ba60SSaar Raz   (void)C<int>;
305d98ba60SSaar Raz   (void)C<int, void>;
315d98ba60SSaar Raz   (void)n::C<void>;
325d98ba60SSaar Raz   f();
335d98ba60SSaar Raz }
345d98ba60SSaar Raz 
355d98ba60SSaar Raz #endif // HEADER
36