Merge from mainline (165734:167278).
[official-gcc/graphite-test-results.git] / gcc / testsuite / g++.dg / template / memfriend6.C
blob5f82339af549546e9cc1c60b77849e592740f556
1 // { dg-do compile }
3 // Copyright (C) 2003 Free Software Foundation
4 // Contributed by Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6 // Member function of class template as friend
7 // Erroneous case: mismatch during declaration
9 template <class T> struct A {
10   template <class U> void f(U);         // { dg-error "candidate" }
11   void g();                             // { dg-error "candidate|with" }
12   void h();                             // { dg-error "candidate|with" }
13   void i(int);                          // { dg-error "candidate" }
16 class C {
17   int ii;
18   template <class U> friend void A<U>::f(U);    // { dg-error "not match" }
19   template <class U> template <class V>
20     friend void A<U>::g();                      // { dg-error "not match|cannot be overloaded" }
21   template <class U> friend int A<U>::h();      // { dg-error "not match|cannot be overloaded" }
22   template <class U> friend void A<U>::i(char); // { dg-error "not match" }