forked from OSchip/llvm-project
33 lines
661 B
C++
33 lines
661 B
C++
// 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(); }
|
|
};
|
|
|