Retro68/gcc/libitm/testsuite/libitm.c++/eh-4.C

22 lines
354 B
C++
Raw Normal View History

2017-04-10 11:32:00 +00:00
// Test that throwing out of an atomic_commit block commits the transaction.
// { dg-do run }
// { dg-options "-fgnu-tm" }
int main()
{
static int i;
bool caught = false;
try {
atomic_commit {
i = 12;
throw 42;
i = 24;
}
} catch (int x) {
caught = (x == 42);
}
if (!caught || i != 12)
__builtin_abort();
}