// { dg-do compile } | |
// Perform access checking to parameter and return type of | |
// function template correctly when only specialization is friend. | |
template <class T> | |
typename T::Inner | |
foo () { | |
return typename T::Inner(); | |
} | |
class Outer { | |
private: | |
struct Inner {}; | |
friend Outer::Inner foo<Outer> (); | |
}; | |
void f() { | |
foo<Outer>(); | |
} |