1 /* { dg-do compile } */ 2 /* { dg-options "-fgnu-tm -O -fdump-tree-tmmark" } */ 3 4 struct large { int x[100]; }; 5 extern int test(void) __attribute__((transaction_safe)); 6 f()7int f() 8 { 9 int i = readint(); 10 struct large lala = { 0 }; 11 __transaction_atomic { 12 lala.x[i] = 666; 13 if (test()) 14 __transaction_cancel; 15 } 16 return lala.x[0]; 17 } 18 19 /* { dg-final { scan-tree-dump-times "logging: lala.x\\\[i_4\\\]" 1 "tmmark" } } */ 20 /* { dg-final { cleanup-tree-dump "tmmark" } } */ 21