// { dg-module-do run } // { dg-additional-options "-fmodules-ts" } // indirect references to import. Non-template cases export module foo; // { dg-module-cmi foo } namespace foo { export int frob (int i) { return i; } export class X { int i; public: X (int i) :i(i) { } operator int () const { return i; } }; export class Y : public virtual X { int j; public: Y (int i, int j) : X(i), j(j){} virtual int frob () const; }; int Y::frob () const { return *this + j; } export enum Plain {A, B, C, D}; export enum class Scoped {A, B, C, D}; }