// RUN: %clang_cc1 -fsyntax-only -verify %s class C { }; C c; void D(int); class D {}; void foo() { D(5); class D d; } class D; // expected-note {{previous use is here}} enum D; // expected-error {{use of 'D' with tag type that does not match previous declaration}} class A * A; class A * a2; void bar() { A = 0; } void C(int); void bar2() { C(17); } extern int B; class B; class B {}; int B; enum E { e1_val }; E e1; void E(int); void bar3() { E(17); } enum E e2; enum E2 { E2 };