| /* { dg-do compile } */ |
| /* { dg-options "-fgnu-tm -O0 -fdump-tree-optimized" } */ |
| |
| int george; |
| int ringo; |
| |
| __attribute__((transaction_callable)) |
| void foo() |
| { |
| ringo=666; |
| __transaction_atomic { |
| george=999; |
| } |
| } |
| |
| /* There should only be 2 instrumented writes to GEORGE: one in FOO, |
| and one in the transactional clone to FOO. There should NOT be |
| more than one instrumented write to GEORGE in the clone of |
| FOO. */ |
| /* { dg-final { scan-tree-dump-times "ITM_WU\[0-9\] \\(&george," 2 "optimized" } } */ |
| |
| /* { dg-final { cleanup-tree-dump "optimized" } } */ |