mirror of
https://github.com/autc04/Retro68.git
synced 2024-11-30 19:53:46 +00:00
22 lines
354 B
C++
22 lines
354 B
C++
|
// 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();
|
||
|
}
|