// PR target/18841 // { dg-do run } // { dg-options "-O2" } extern "C" void abort (); int r, i1 = 1, i2 = 2, i3 = 3, i4 = 4, i5 = 5; struct S { ~S() { r = i1 + i2 + i3 + i4 + i5; } }; void foo() { S s; throw 1; } void bar() { try { foo(); } catch (...) { } } int main() { bar(); if (r != 1 + 2 + 3 + 4 + 5) abort (); }