1 | // RUN: %clang_cc1 -fsyntax-only -verify %s |
2 | |
3 | void f1(); |
4 | |
5 | struct X { |
6 | void f2(); |
7 | }; |
8 | |
9 | struct Y { |
10 | friend void ::f1() { } // expected-error{{friend function definition cannot be qualified with '::'}} |
11 | friend void X::f2() { } // expected-error{{friend function definition cannot be qualified with 'X::'}} |
12 | }; |
13 | |
14 | template <typename T> struct Z { |
15 | friend void T::f() {} // expected-error{{friend function definition cannot be qualified with 'T::'}} |
16 | }; |
17 | |
18 | void local() { |
19 | void f(); |
20 | |
21 | struct Local { |
22 | friend void f() { } // expected-error{{friend function cannot be defined in a local class}} |
23 | }; |
24 | } |
25 | |