(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
modules/
tpl-friend-3_a.C
// { dg-additional-options "-fmodules-ts" }
// declarations followed by friend definition injection

export module foo;
// { dg-module-cmi foo }

void foo (int, void *);
void foo (float, void *);

template <typename T> class TPL
{
  friend void foo (T x, void *p)
  {
    auto *obj = reinterpret_cast<TPL<T> *> (p);

    obj->member = x;
  }

  T member;
};

template class TPL<float>;  // instantiate