// PR c++/48370 // { dg-do run } extern "C" void abort(); int last = 4; struct A { int i; A(int i): i(i) { } ~A() { if (i > last) abort(); last = i; } }; struct D { int i; }; struct B: D, A { B(int i): A(i) { } }; struct E: D, virtual A { E(int i): A(i) { } }; struct C { const A& ar1; const A& ar2; const A& ar3; }; int main() { C c = { 1, B(2), E(3) }; }