37 lines
646 B
C
37 lines
646 B
C
/* { dg-xfail-run-if "unsupported" { *-*-* } } */
|
|
#include <stdlib.h>
|
|
#include <libitm.h>
|
|
|
|
/* 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;
|
|
}
|