1 // { dg-do run  }
2 // simplified from testcase in Windows Developer Journal,
3 // submitted by eyal.ben-david@aks.com
4 
5 // The initialization of a static local variable must be retried if a
6 // previous try finished by throwing an exception [stmt.dcl]/4
7 
8 extern "C" void abort ();
9 
10 struct foo {
foofoo11   foo() { throw true; }
12 };
13 
bar()14 void bar() {
15   static foo baz;
16 }
17 
main()18 int main() {
19   try {
20     bar(); // must throw
21   }
22   catch (bool) {
23     try {
24       bar(); // must throw again!
25     }
26     catch (bool) {
27       return 0;
28     }
29   }
30   abort();
31 }
32