diff options
Diffstat (limited to 'test/SemaTemplate/temp_class_spec_neg.cpp')
-rw-r--r-- | test/SemaTemplate/temp_class_spec_neg.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/test/SemaTemplate/temp_class_spec_neg.cpp b/test/SemaTemplate/temp_class_spec_neg.cpp index be5fbb1..1c77038 100644 --- a/test/SemaTemplate/temp_class_spec_neg.cpp +++ b/test/SemaTemplate/temp_class_spec_neg.cpp @@ -1,15 +1,23 @@ // RUN: %clang_cc1 -fsyntax-only -verify %s +// RUN: %clang_cc1 -fsyntax-only -verify -std=c++98 %s +// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s template<typename T> struct vector; // C++ [temp.class.spec]p6: namespace N { namespace M { - template<typename T> struct A; // expected-note{{here}} + template<typename T> struct A; +#if __cplusplus <= 199711L // C++03 or earlier modes + // expected-note@-2{{explicitly specialized declaration is here}} +#endif } } template<typename T> -struct N::M::A<T*> { }; // expected-warning{{C++11 extension}} +struct N::M::A<T*> { }; +#if __cplusplus <= 199711L +// expected-warning@-2{{first declaration of class template partial specialization of 'A' outside namespace 'M' is a C++11 extension}} +#endif // C++ [temp.class.spec]p9 // bullet 1 |