_Atomic int foo; int bar; void baz(void) { foo++; } void foobar(void) { bar++; } void xyzzy(int *x) { (*x)++; } void plugh(_Atomic int *x) { (*x)++; } void xyzzy1(int *x) { int y = *x; *x = y+1; } void plugh2(_Atomic int *x) { _Atomic int y = *x; *x = y+1; }