// PR c++/96876
// { dg-do run { target c++11 } }
int d;
struct B {
~B() { ++d; }
};
struct C1 { B b; int n; };
struct C2 { int i; B b; int n; };
int f() { throw 24; return 42; }
int dummy;
int g() { ++dummy; return 42; }
int main() {
try {
C1 c{{}, f()};
} catch (...) { }
try {
C2 c{g(), {}, f()};
} catch (...) { }
if (d != 2)
__builtin_abort ();
}