111
|
1 /* { dg-do compile } */
|
|
2 /* { dg-options "-fgnu-tm" } */
|
|
3
|
|
4 void mco(void) __attribute__((transaction_may_cancel_outer));
|
|
5
|
|
6 void
|
|
7 f(void)
|
|
8 {
|
|
9 mco(); /* { dg-error "" } */
|
|
10 __transaction_atomic {
|
|
11 mco(); /* { dg-error "" } */
|
|
12 }
|
|
13 __transaction_relaxed {
|
|
14 mco(); /* { dg-error "" } */
|
|
15 }
|
|
16 __transaction_atomic [[outer]] {
|
|
17 mco();
|
|
18 }
|
|
19 __transaction_atomic [[outer]] {
|
|
20 __transaction_atomic {
|
|
21 __transaction_atomic {
|
|
22 __transaction_atomic {
|
|
23 mco();
|
|
24 }
|
|
25 }
|
|
26 }
|
|
27 }
|
|
28 }
|
|
29
|
|
30 void __attribute__((transaction_may_cancel_outer))
|
|
31 g(void)
|
|
32 {
|
|
33 mco();
|
|
34 __transaction_atomic {
|
|
35 __transaction_atomic {
|
|
36 __transaction_atomic {
|
|
37 __transaction_atomic {
|
|
38 mco();
|
|
39 }
|
|
40 }
|
|
41 }
|
|
42 }
|
|
43 }
|