Merge from mainline (165734:167278).
[official-gcc/graphite-test-results.git] / gcc / testsuite / g++.dg / abi / packed1.C
blob5bec67aff6591ca4380b1ac6a6d5a390064903cc
1 // PR c++/41788
2 // { dg-options "-Wpacked" }
3 // { dg-do run }
5 extern "C" void abort ();
7 struct INNER { // { dg-warning "inefficient.*vptr" "" { target alpha*-*-* ia64-*-* hppa*-*-* mips-sgi-irix* sparc*-*-* sh*-*-* } }
8   virtual int foo() const { return 1; }
9 } __attribute__ ((packed));
11 struct OUTER {
12   char c;
13   INNER inner;
14 } __attribute__ ((packed));
16 int main()
18   OUTER outer;
19   int s = sizeof(outer);
20   int o = (char *)&outer.inner - (char *)&outer;
21   if (s != sizeof (char) + sizeof (void*)
22       || o != sizeof (char))
23     abort ();