1*67e74705SXin Li // RUN: %clang_cc1 -verify %s 2*67e74705SXin Li 3*67e74705SXin Li template<typename T> struct S { 4*67e74705SXin Li static int a, b; 5*67e74705SXin Li }; 6*67e74705SXin Li 7*67e74705SXin Li template<typename T> int S<T>::a, S<T>::b; // expected-error {{can only declare a single entity}} 8*67e74705SXin Li 9*67e74705SXin Li template<typename T> struct A { static A a; } A<T>::a; // expected-error {{expected ';' after struct}} \ 10*67e74705SXin Li expected-error {{use of undeclared identifier 'T'}} \ 11*67e74705SXin Li expected-error {{no member named 'a'}} \ 12*67e74705SXin Li expected-warning {{extra qualification}} 13*67e74705SXin Li 14*67e74705SXin Li template<typename T> struct B { } f(); // expected-error {{expected ';' after struct}} \ 15*67e74705SXin Li expected-error {{requires a type specifier}} 16*67e74705SXin Li 17*67e74705SXin Li template<typename T> struct C { } // expected-error {{expected ';' after struct}} 18*67e74705SXin Li 19*67e74705SXin Li A<int> c; 20