(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
modules/
virt-1_a.C
// { dg-module-do run }
// { dg-additional-options -fmodules-ts }
export module foo;
// { dg-module-cmi foo }

export struct Visitor
{
  virtual int Visit ();
};

// Key function explicitly not in line (regardless of p1779's state)
// We emit vtables & rtti only in this TU
int Visitor::Visit ()
{
  return 0;
}

export int Visit (Visitor *v)
{
  return v->Visit ();
}

// { dg-final { scan-assembler {_ZTVW3foo7Visitor:} } }
// { dg-final { scan-assembler {_ZTIW3foo7Visitor:} } }
// { dg-final { scan-assembler {_ZTSW3foo7Visitor:} } }
// { dg-final { scan-assembler {_ZW3foo5VisitPS_7Visitor:} } }