diff options
Diffstat (limited to 'test/Parser/cxx-template-argument.cpp')
-rw-r--r-- | test/Parser/cxx-template-argument.cpp | 39 |
1 files changed, 28 insertions, 11 deletions
diff --git a/test/Parser/cxx-template-argument.cpp b/test/Parser/cxx-template-argument.cpp index c9cc6b807902..9b8ca985ddd9 100644 --- a/test/Parser/cxx-template-argument.cpp +++ b/test/Parser/cxx-template-argument.cpp @@ -1,5 +1,9 @@ // 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 // RUN: %clang_cc1 -fsyntax-only -verify %s -fdelayed-template-parsing +// RUN: %clang_cc1 -fsyntax-only -verify -std=c++98 %s -fdelayed-template-parsing +// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s -fdelayed-template-parsing template<typename T> struct A {}; @@ -22,7 +26,10 @@ namespace greatergreater { void (*p)() = &t<int>; (void)(&t<int>==p); // expected-error {{use '> ='}} (void)(&t<int>>=p); // expected-error {{use '> >'}} - (void)(&t<S<int>>>=p); // expected-error {{use '> >'}} + (void)(&t<S<int>>>=p); +#if __cplusplus <= 199711L + // expected-error@-2 {{use '> >'}} +#endif (void)(&t<S<int>>==p); // expected-error {{use '> >'}} expected-error {{use '> ='}} } } @@ -72,13 +79,17 @@ namespace pr16225add { { }; template<class T1, typename T2> struct foo5 : - UnknownBase<T1,T2,ABC<T2,T1>> // expected-error {{unknown template name 'UnknownBase'}} \ - // expected-error {{use '> >'}} + UnknownBase<T1,T2,ABC<T2,T1>> // expected-error {{unknown template name 'UnknownBase'}} +#if __cplusplus <= 199711L + // expected-error@-2 {{use '> >'}} +#endif { }; template<class T1, typename T2> struct foo6 : - UnknownBase<T1,ABC<T2,T1>>, // expected-error {{unknown template name 'UnknownBase'}} \ - // expected-error {{use '> >'}} + UnknownBase<T1,ABC<T2,T1>>, // expected-error {{unknown template name 'UnknownBase'}} +#if __cplusplus <= 199711L + // expected-error@-2 {{use '> >'}} +#endif Known<T1> // expected-error {{too few template arguments for class template 'Known'}} { }; @@ -87,18 +98,24 @@ namespace pr16225add { { }; template<class T1, typename T2> struct foo8 : - UnknownBase<X<int,int>,X<int,int>> // expected-error {{unknown template name 'UnknownBase'}} \ - // expected-error {{use '> >'}} + UnknownBase<X<int,int>,X<int,int>> // expected-error {{unknown template name 'UnknownBase'}} +#if __cplusplus <= 199711L + // expected-error@-2 {{use '> >'}} +#endif { }; template<class T1, typename T2> struct foo9 : - UnknownBase<Known<int,int>,X<int,int>> // expected-error {{unknown template name 'UnknownBase'}} \ - // expected-error {{use '> >'}} + UnknownBase<Known<int,int>,X<int,int>> // expected-error {{unknown template name 'UnknownBase'}} +#if __cplusplus <= 199711L + // expected-error@-2 {{use '> >'}} +#endif { }; template<class T1, typename T2> struct foo10 : - UnknownBase<Known<int,int>,X<int,X<int,int>>> // expected-error {{unknown template name 'UnknownBase'}} \ - // expected-error {{use '> >'}} + UnknownBase<Known<int,int>,X<int,X<int,int>>> // expected-error {{unknown template name 'UnknownBase'}} +#if __cplusplus <= 199711L + // expected-error@-2 {{use '> >'}} +#endif { }; template<int N1, int N2> struct foo11 : |