1 // { dg-additional-options "-fmodules-ts" }
2 import One;
3 import Two;
4 
5 struct derived : middle
6 {
7   long long d;
8 
derivedderived9   derived (int b_, int m_, int d_)
10     : middle (b_, m_), d (d_)
11   {
12   }
13 };
14 
check(derived * d)15 int check (derived *d)
16 {
17   if ((char *)&d->b != (char *)&d->d + sizeof (long long))
18     return 3;
19   if ((char *)&d->d != (char *)&d->m + sizeof (long long))
20     return 4;
21   return 0;
22 }
23 
24 
main()25 int main ()
26 {
27   middle m (1, 2);
28 
29 
30   if (m.b != 1 || m.m != 2)
31     return 1;
32 
33   derived d (1, 2, 3);
34 
35   if (d.b != 99 || d.m != 2 || d.d != 3)
36     return 2;
37 
38   return check (&d);
39 }
40