/* { dg-do compile } */ /* { dg-options "-fgnu-tm" } */ void mco(void) __attribute__((transaction_may_cancel_outer)); void f(void) { mco(); /* { dg-error "" } */ __transaction_atomic { mco(); /* { dg-error "" } */ } __transaction_relaxed { mco(); /* { dg-error "" } */ } __transaction_atomic [[outer]] { mco(); } } void __attribute__((transaction_may_cancel_outer)) g(void) { mco(); __transaction_atomic { mco(); } __transaction_atomic [[outer]] { /* { dg-error "" } */ mco(); } }