// { dg-do compile } // -fpack-struct is necessary because the code below assumes the initial // packing is larger than 1, which cannot ge guaranteed for all targets. // { dg-options "-Wabi -fabi-version=1 -fpack-struct=8" } // On ARM processors, the alignment of B will be 4 even though it // contains only a single "char". That would avoids the situation // that the warning below is designed to catch. We therefore // explicitly set the default structure alignment to 1. // { dg-options "-Wabi -fabi-version=1 -mstructure-size-boundary=8" { target arm*-*-* } } struct A { virtual void f(); char c1; }; struct B { B(); char c2; }; struct C : public A, public virtual B {}; // { dg-warning "ABI" }