C C-WillDeacon-MP+o-r+ai-rmb-o.litmus
(*
* Expected result: Never.
*)
{
}
P0(int *x, atomic_t *y)
{
int r0;
WRITE_ONCE(*x, 1);
r0 = atomic_xchg_release(y, 5);
}
P1(int *x, atomic_t *y)
{
int r1 ;
atomic_inc(y);
smp_rmb();
r1 = READ_ONCE(*x);
}
Observed
1:r1=0; 0:r0=0;