diff options
Diffstat (limited to 'test/PCH/cxx1z-using-declaration.cpp')
-rw-r--r-- | test/PCH/cxx1z-using-declaration.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/test/PCH/cxx1z-using-declaration.cpp b/test/PCH/cxx1z-using-declaration.cpp new file mode 100644 index 0000000000..a185ff1740 --- /dev/null +++ b/test/PCH/cxx1z-using-declaration.cpp @@ -0,0 +1,35 @@ +// No PCH: +// RUN: %clang_cc1 -pedantic -std=c++1z -include %s -verify %s +// +// With PCH: +// RUN: %clang_cc1 -pedantic -std=c++1z -emit-pch %s -o %t +// RUN: %clang_cc1 -pedantic -std=c++1z -include-pch %t -verify %s + +#ifndef HEADER +#define HEADER + +template<typename ...T> struct A : T... { + using T::f ...; + template<typename ...U> void g(U ...u) { f(u...); } +}; + +struct X { void f(); }; +struct Y { void f(int); }; +struct Z { void f(int, int); }; + +inline A<X, Y, Z> a; + +#else + +void test() { + a.g(); + a.g(0); + a.g(0, 0); + // expected-error@13 {{no match}} + // expected-note@16 {{candidate}} + // expected-note@17 {{candidate}} + // expected-note@18 {{candidate}} + a.g(0, 0, 0); // expected-note {{instantiation of}} +} + +#endif |