// PR c++/23842 struct S; extern S *p; template int f(T*, int y = ((T*)p)->x) { return y; } struct S { private: int x; template friend int f(U*, int); }; int g() { return f(p); }