// { dg-do run }
extern "C" void abort ();
int dothrow;
int g;
static void f1()
{
g++;
if (dothrow)
throw 1;
}
static void f2()
__transaction_atomic {
f1();
int main()
dothrow = 0;
f2();
dothrow = 1;
try {
} catch (...) {
if (g != 2)
abort ();
return 0;