1 // { dg-additional-options "-fmodules-ts -fdump-lang-module-blocks" } 2 export module B; 3 // { dg-module-cmi B } 4 export import A; 5 6 export struct D 7 { 8 C c; 9 10 // cause all C's implicit members to exist, and we need to put it in out CMI DD11 inline D (){} DD12 inline D (D const &v) : c (v.c) {} DD13 inline D (D &&v) : c (static_cast<C &&> (v.c)) {} ~DD14 inline ~D () {} 15 inline D &operator= (D const &v) { c = v.c; return *this;} 16 inline D &operator= (D &&v) { c =static_cast<C &&> (v.c); return *this;} 17 }; 18 19 // { dg-final { scan-lang-dump-times {\[0\]=decl definition '::C@A:1::__dt '} 1 module } } 20 // { dg-final { scan-lang-dump-times {\[0\]=decl definition '::C@A:1::__ct '} 3 module } } 21 // { dg-final { scan-lang-dump-times {\[0\]=decl definition '::C@A:1::operator='} 2 module } } 22