gcc/libitm/testsuite/libitm.c++/eh-1.C

37 lines
319 B
C

// { 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 {
f2();
} catch (...) {
}
if (g != 2)
abort ();
return 0;
}