/* { dg-do compile } */ /* { dg-options "-fgnu-tm -O -fdump-tree-tmmark" } */ struct large { int x[100]; }; extern int test(void) __attribute__((transaction_safe)); int f() { int i = readint(); struct large lala = { 0 }; __transaction_atomic { lala.x[i] = 666; if (test()) __transaction_cancel; } return lala.x[0]; } /* { dg-final { scan-tree-dump-times "logging: lala.x\\\[i_4\\\]" 1 "tmmark" } } */ /* { dg-final { cleanup-tree-dump "tmmark" } } */