1*67e74705SXin Li// RUN: %clang_cc1 -fsyntax-only %s -verify 2*67e74705SXin Li// RUN: %clang_cc1 -fsyntax-only -std=c++98 %s -verify 3*67e74705SXin Li// RUN: %clang_cc1 -fsyntax-only -std=c++11 %s -verify 4*67e74705SXin Li 5*67e74705SXin Li// <rdar://problem/11286701> 6*67e74705SXin Linamespace std { 7*67e74705SXin Li template<typename T, typename U> class pair; 8*67e74705SXin Li} 9*67e74705SXin Li 10*67e74705SXin Li@interface NSObject 11*67e74705SXin Li@end 12*67e74705SXin Li 13*67e74705SXin Li@interface Test : NSObject 14*67e74705SXin Li@end 15*67e74705SXin Li 16*67e74705SXin Li@implementation Test 17*67e74705SXin Li 18*67e74705SXin Listruct EvilStruct { 19*67e74705SXin Li} // expected-error {{expected ';' after struct}} 20*67e74705SXin Li 21*67e74705SXin Li typedef std::pair<int, int> IntegerPair; 22*67e74705SXin Li 23*67e74705SXin Litemplate<typename...Ts> void f(Ts); // expected-error {{unexpanded}} 24*67e74705SXin Li#if __cplusplus <= 199711L // C++03 or earlier modes 25*67e74705SXin Li// expected-warning@-2 {{variadic templates are a C++11 extension}} 26*67e74705SXin Li#endif 27*67e74705SXin Li@end 28