// RUN: clang-cc -fsyntax-only -verify %s

class C {
  friend class D;
};

class A {
public:
	void f();
};

friend int x; // expected-error {{'friend' used outside of class}}

friend class D {}; // expected-error {{'friend' used outside of class}}

union U {
  int u1;
};

class B {
  // 'A' here should refer to the declaration above.  
  friend class A;

  friend C; // expected-error {{must specify 'class' in a friend class declaration}}
  friend U; // expected-error {{must specify 'union' in a friend union declaration}}
  friend int; // expected-error {{friends can only be classes or functions}}

  friend void myfunc();

  void f(A *a) { a->f(); }
};

