// PR c++/41788 // { dg-do run } // { dg-options "-Wpacked -Wno-attributes" } extern "C" void abort (); struct INNER { virtual int foo() const { return 1; } } __attribute__ ((packed)); struct OUTER { char c; INNER inner; } __attribute__ ((packed)); int main() { OUTER outer; int s = sizeof(outer); int o = (char *)&outer.inner - (char *)&outer; if (s != sizeof (char) + sizeof (void*) || o != sizeof (char)) abort (); }