| // 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(); } |
| }; |
| |