1 /* { dg-do compile } */
2 /* { dg-options "-fgnu-tm" } */
3 
4 extern int foo(int) __attribute__((transaction_safe));
bar(void)5 void bar(void)
6 {
7   __transaction_atomic {
8     if (foo(1))
9       __transaction_atomic {
10 	if (foo(2))
11 	  __transaction_atomic {
12 	    if (foo(3))
13 	      __transaction_atomic {
14 		if (foo(4))
15 		  foo(5);
16 		else
17 		  __transaction_cancel;
18 	      }
19 	    else
20 	      __transaction_cancel;
21 	  }
22 	else
23 	  __transaction_cancel;
24       }
25     else
26       __transaction_cancel;
27   }
28 }
29