blob: aa404dda11abadd6c8acc2c5c4bc99c1efd308d8 [file] [log] [blame]
// { dg-module-do run }
// { dg-additional-options "-fmodules-ts" }
export module tom.riddle;
// { dg-module-cmi tom.riddle }
export inline auto One (int a)
{
struct X {
int x;
// p1779 makes these things not-inline, which is a surprise.
// Asking CWG
inline X(int a) :x(a){}
inline operator int () const {return x;}
};
return X(a);
}
// Look Ma! this isn't inline!
export auto Two (int a)
{
struct Y {
int x;
// In this case we do manage to emit these fns (if not marked as
// inline), but we give them internal linkage, so they are not
// nameable from elsewhere. Workaround for now.
inline Y(int a) :x(a){}
inline operator int () const {return x;}
};
return Y(a);
}