37 lines · cpp
1// RUN: %clang_cc1 %s -verify -fno-spell-checking2 3struct S { static int a,b,c;};4int S::(a); // expected-error{{expected unqualified-id}}5int S::(b; // expected-error{{expected unqualified-id}}6 );7int S::c;8int S::(*d); // expected-error{{expected unqualified-id}}9int S::(*e; // expected-error{{expected unqualified-id}}10 );11int S::*f;12int g = S::(a); // expected-error {{expected unqualified-id}} expected-error {{use of undeclared identifier 'a'}}13int h = S::(b; // expected-error {{expected unqualified-id}} expected-error {{use of undeclared identifier 'b'}}14 ); // expected-error {{expected unqualified-id}}15int i = S::c;16 17void foo() {18 int a;19 a = ::(g); // expected-error{{expected unqualified-id}}20 a = ::(h; // expected-error{{expected unqualified-id}}21 a = ::i;22}23 24// The following tests used to be crash bugs.25 26// PR2181527// expected-error@+2{{a type specifier is required for all declarations}}28// expected-error@+1{{expected unqualified-id}}29a (::( ));30 31::((c )); // expected-error{{expected unqualified-id}}32 33// PR2662334int f1(::(B) p); // expected-error {{expected unqualified-id}} expected-error {{use of undeclared identifier 'B'}}35 36int f2(::S::(C) p); // expected-error {{expected unqualified-id}} expected-error {{use of undeclared identifier 'C'}}37