// { dg-do run  }
// simplified from testcase in Windows Developer Journal,
// submitted by eyal.ben-david@aks.com

// The initialization of a static local variable must be retried if a
// previous try finished by throwing an exception [stmt.dcl]/4

extern "C" void abort ();

struct foo {
  foo() { throw true; }
};

void bar() {
  static foo baz;
}

int main() {
  try {
    bar(); // must throw
  }
  catch (bool) {
    try {
      bar(); // must throw again!
    }
    catch (bool) {
      return 0;
    }
  }
  abort();
}
