test2(int x[1000])1static int __attribute__((noinline)) test2(int x[1000]) 2 { 3 int i; 4 return x[12]; 5 } 6 test1()7static int __attribute__((noinline)) test1() 8 { 9 int x[1000], i; 10 11 for (i = 0; i < 1000; i++) 12 x[i] = i; 13 return test2(x); 14 } 15 main()16int main() 17 { 18 __transaction_atomic { 19 if (test1() !=0) 20 __transaction_cancel; 21 } 22 return 0; 23 } 24