| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- // RUN: %clang_cc1 -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-warning {{specify 'class' to befriend}}
- friend U; // expected-warning {{specify 'union' to befriend}}
- friend int; // expected-warning {{non-class friend type 'int'}}
- friend void myfunc();
- void f(A *a) { a->f(); }
- };
- inline void bar() {} // expected-note {{previous definition is here}}
- class E {
- friend void bar() {} // expected-error {{redefinition of 'bar'}}
- };
- template <typename t1, typename t2> class some_template;
- friend // expected-error {{'friend' used outside of class}}
- some_template<foo, bar>& // expected-error {{use of undeclared identifier 'foo'}}
- ; // expected-error {{expected unqualified-id}}
|