/* { dg-do compile } */ | |
/* { dg-options "-fgnu-tm" } */ | |
extern int foo(int) __attribute__((transaction_safe)); | |
void bar(void) | |
{ | |
__transaction_atomic { | |
if (foo(1)) | |
__transaction_atomic { | |
if (foo(2)) | |
__transaction_atomic { | |
if (foo(3)) | |
__transaction_atomic { | |
if (foo(4)) | |
foo(5); | |
else | |
__transaction_cancel; | |
} | |
else | |
__transaction_cancel; | |
} | |
else | |
__transaction_cancel; | |
} | |
else | |
__transaction_cancel; | |
} | |
} |