(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.old-deja/
g++.pt/
friend34.C
// { dg-do assemble  }

// This testcase won't fail if class ::foo is forward-declared in the
// global namespace, nor if class bar is not a template class.

template <typename T = void>
class bar {
public:
  friend class foo; // this is not bar::foo, it injects hidden ::foo
  class foo {};
  bar() { foo(); } // but this should refer to bar::foo
};

bar<> baz;

// We still have not made foo visible.
foo *b;  // { dg-error "does not name a type" }