1// { dg-do assemble } 2 3// This testcase won't fail if class ::foo is forward-declared in the 4// global namespace, nor if class bar is not a template class. 5 6template <typename T = void> 7class bar { 8public: 9 friend class foo; // this is not bar::foo, it forward-declares ::foo 10 class foo {}; 11 bar() { foo(); } // but this should refer to bar::foo 12}; 13 14bar<> baz; 15