// { dg-additional-options "-fmodules-ts" } import One; import Two; struct derived : middle { long long d; derived (int b_, int m_, int d_) : middle (b_, m_), d (d_) { } }; int check (derived *d) { if ((char *)&d->b != (char *)&d->d + sizeof (long long)) return 3; if ((char *)&d->d != (char *)&d->m + sizeof (long long)) return 4; return 0; } int main () { middle m (1, 2); if (m.b != 1 || m.m != 2) return 1; derived d (1, 2, 3); if (d.b != 99 || d.m != 2 || d.d != 3) return 2; return check (&d); }