// PR c++/4926 // { dg-do compile } template struct X { typedef int Type; }; template struct Y { char array[1]; }; template Y P(T); // acts as "Y" struct F { int operator()() const; }; template typename X::Type foo(); void bar () { foo(); }