/* { dg-xfail-run-if "unsupported" { *-*-* } } */ #include #include /* Test that _ITM_dropReferences() forces a commit of given chunk. */ unsigned char pp[100]; int main() { int i; for(i=0; i < 100; ++i) pp[i]=0x22; __transaction_atomic { for(i=0; i < 100; ++i) pp[i]=0x33; /* This should write-through pp[0..49]... */ _ITM_dropReferences (pp, 50); /* ...while this should revert everything but pp[0..49]. */ __transaction_cancel; } for(i=0; i < 50; ++i) if (pp[i] != 0x33) abort(); for(i=50; i < 100; ++i) if (pp[i] != 0x22) abort(); return 0; }