1 /* { dg-do compile } */ 2 /* { dg-options "-fgnu-tm -O -fdump-tree-tmedge --param tm-max-aggregate-size=999" } */ 3 4 /* Test save/restore pairs for aggregates. */ 5 6 struct large { int x[100]; }; 7 extern struct large foobie (void) __attribute__((transaction_safe)); 8 int asdf; 9 f()10int f() 11 { 12 struct large lala; 13 struct large lacopy = foobie(); 14 __transaction_atomic { 15 lala = lacopy; 16 } 17 return lala.x[asdf]; 18 } 19 20 /* { dg-final { scan-tree-dump-times "tm_save.\[0-9_\]+ = lala" 1 "tmedge" } } */ 21 /* { dg-final { scan-tree-dump-times "lala = tm_save" 1 "tmedge" } } */ 22