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()10 void 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()24 void bar()
25 {
26   A = 0;
27 }
28 
29 void C(int);
30 
bar2()31 void 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()46 void bar3() {
47   E(17);
48 }
49 
50 enum E e2;
51 
52 enum E2 { E2 };
53