Test C-atomic-00

C C-atomic-00
(* Allowed, as atomic_inc does not return a value *)
{
  atomic_t x = ATOMIC_INIT(0);
  atomic_t y = ATOMIC_INIT(0);
}


P0(atomic_t *x,atomic_t *y) {
  int r0;
  atomic_inc(x) ;
  r0 = atomic_read(y);
}

P1(atomic_t *x,atomic_t *y) {
  int r1;
  atomic_inc(y) ;
  r1 = atomic_read(x);
}

P2(atomic_t *x,atomic_t *y) {
  atomic_add(2,x) ;
  atomic_add(2,y) ;
}

Observed
    y=3; x=3; 1:r1=2; 0:r0=2;
and y=3; x=3; 1:r1=1; 0:r0=2;
and y=3; x=3; 1:r1=0; 0:r0=2;
and y=3; x=3; 1:r1=2; 0:r0=0;
and y=3; x=3; 1:r1=0; 0:r0=0;