(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
modules/
contracts-tpl-friend-1_b.C
// { dg-additional-options "-fmodules-ts -fcontracts" }

module foo;

void foo (int x, void *p)
  [[ pre: x > 0 ]]
{
  auto *obj = reinterpret_cast<TPL<int> *> (p);

  obj->member = x;
}

void foo (float x, void *p)
  [[ pre: x > 0 ]]
{
  auto *obj = reinterpret_cast<TPL<float> *> (p);

  obj->member = x;
}