1 /* { dg-xfail-run-if "unsupported" { *-*-* } } */ 2 #include <stdlib.h> 3 #include <libitm.h> 4 5 /* Test that _ITM_dropReferences() forces a commit of given chunk. */ 6 7 unsigned char pp[100]; 8 main()9int main() 10 { 11 int i; 12 13 for(i=0; i < 100; ++i) 14 pp[i]=0x22; 15 16 __transaction_atomic { 17 for(i=0; i < 100; ++i) 18 pp[i]=0x33; 19 20 /* This should write-through pp[0..49]... */ 21 _ITM_dropReferences (pp, 50); 22 23 /* ...while this should revert everything but pp[0..49]. */ 24 __transaction_cancel; 25 } 26 27 for(i=0; i < 50; ++i) 28 if (pp[i] != 0x33) 29 abort(); 30 31 for(i=50; i < 100; ++i) 32 if (pp[i] != 0x22) 33 abort(); 34 35 return 0; 36 } 37