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