// RUN: clang-cc -fsyntax-only -verify %s
class C { };

C c;

void D(int);

class D {}; // expected-note {{previous use is here}}

void foo()
{
  D(5);
  class D d;
}

class D; 

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 };
