Merge from mainline (167278:168000).
[official-gcc/graphite-test-results.git] / gcc / testsuite / g++.dg / template / friend28.C
bloba7d160d5fc749a08e6233304a5fb3043a017c699
1 // PR c++/15629
2 // { dg-do link }
4 template<int a, int b> class T; 
5  
6 template<int a, int b> void func(T<a, b> * t);
7 template<int a>        void func(T<a, 3> * t) {}
8 template void func<2>(T<2, 3>*);
9  
10 template<int a, int b> struct T { 
11   friend void func<a, b>(T<a, b> * t); 
12   friend void func<a>   (T<a, 3> * t); 
13    
14   void foo(); 
15 }; 
17 template<int a, int b> void T<a, b>::foo() { 
18   func((T<2,3>*)0); 
19
21 int main() { 
22   T<2,3>().foo(); 
23