1 // RUN: %clang_cc1 -fsyntax-only -verify %s 2 class C { }; 3 4 C c; 5 6 void D(int); 7 8 class D {}; 9 foo()10void foo() 11 { 12 D(5); 13 class D d; 14 } 15 16 class D; // expected-note {{previous use is here}} 17 18 enum D; // expected-error {{use of 'D' with tag type that does not match previous declaration}} 19 20 class A * A; 21 22 class A * a2; 23 bar()24void bar() 25 { 26 A = 0; 27 } 28 29 void C(int); 30 bar2()31void bar2() 32 { 33 C(17); 34 } 35 36 extern int B; 37 class B; 38 class B {}; 39 int B; 40 41 enum E { e1_val }; 42 E e1; 43 44 void E(int); 45 bar3()46void bar3() { 47 E(17); 48 } 49 50 enum E e2; 51 52 enum E2 { E2 }; 53