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