1// PR target/18841
2// { dg-do run }
3// { dg-options "-O2" }
4
5extern "C" void abort ();
6
7int r, i1 = 1, i2 = 2, i3 = 3, i4 = 4, i5 = 5;
8
9struct S
10{
11  ~S() { r = i1 + i2 + i3 + i4 + i5; }
12};
13
14void foo()
15{
16  S s;
17  throw 1;
18}
19
20void bar()
21{
22  try {
23    foo();
24  } catch (...) {
25  }
26}
27
28int main()
29{
30  bar();
31  if (r != 1 + 2 + 3 + 4 + 5)
32    abort ();
33}
34