// 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(); }