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