// { dg-additional-options {-fmodules-ts -fdump-lang-module-graph-blocks} }
export module TPL;
// { dg-module-cmi TPL }
export struct frob 
{
  int i;
  template<typename T> void store (T i_)
  {
    i = int (i_);
  }
};
// Not inline!
template <> void frob::store (int i_)
{
  i = -i_;
}
// { dg-final { scan-lang-dump {Dependencies of specialization function_decl:'::frob::store<int>'} module } }
// { dg-final { scan-lang-dump-not {Depending definition function_decl:'::frob::store<int>'} module } }
// { dg-final { scan-lang-dump {Cluster members:\n  \[0\]=specialization declaration '::frob::store<int>'} module } }
// { dg-final { scan-lang-dump {Pending specialization '::frob::store<int>' entity:[0-9]* section:. keyed to '::frob'} module } }
// { dg-final { scan-assembler {_ZNW3TPL4frob5storeIiEEvT_:} } }