brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · da6d212 Raw
38 lines · cpp
1// RUN: %clang_cc1 -fsyntax-only -verify %s2 3void f1();4 5struct X {6  void f2();7};8 9struct 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 14template <typename T> struct Z {15  friend void T::f() {} // expected-error{{friend function definition cannot be qualified with 'T'}}16};17 18void 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 26template<typename T> void f3(T);27 28namespace N {29  template<typename T> void f4(T);30}31 32template<typename T> struct A {33  friend void f3(T) {}34  friend void f3<T>(T) {} // expected-error{{friend function specialization cannot be defined}}35  friend void N::f4(T) {} // expected-error{{friend function definition cannot be qualified with 'N'}}36  friend void N::f4<T>(T) {} // expected-error{{friend function definition cannot be qualified with 'N'}}37};38