1 /* { dg-do compile } */ 2 /* { dg-options "-fgnu-tm -O -fdump-tree-tmedge --param tm-max-aggregate-size=1" } */ 3 4 struct large { int x[100]; }; 5 struct large bark(); 6 extern int test (void) __attribute__((transaction_safe)); 7 struct large lacopy; 8 f()9int f() 10 { 11 int i = readint(); 12 struct large lala = bark(); 13 __transaction_atomic { 14 lala.x[55] = 666; 15 lala = lacopy; /* Aggregate instrumentation. */ 16 } 17 return lala.x[i]; 18 } 19 20 /* { dg-final { scan-tree-dump-times "memmoveRtWt \\\(.*, &lacopy" 1 "tmedge" } } */ 21 /* { dg-final { cleanup-tree-dump "tmedge" } } */ 22