C C-rddep
{
int u;
int v;
int *x = &u;
int *y = &u;
}
P0(int *u, int *v, int **y)
{
WRITE_ONCE(*u, 1);
smp_wmb();
WRITE_ONCE(*y, v);
}
P1(int **x, int **y)
{
int *r1;
int *r2;
int r3;
int r4;
r1 = READ_ONCE(*x);
r2 = READ_ONCE(*y);
smp_read_barrier_depends();
r3 = READ_ONCE(*r1);
r4 = READ_ONCE(*r2);
}
Observed
1:r3=0; 1:r2=v;