builtin_17_atomic_cas_success.c (338B)
1 int test_main(void) { 2 int x = 10; 3 int expected = 10; 4 /* CAS: x==expected -> store 42, return 1. x becomes 42. */ 5 int ok = __atomic_compare_exchange_n(&x, &expected, 42, 0, __ATOMIC_SEQ_CST, 6 __ATOMIC_SEQ_CST); 7 /* ok==1, x==42, expected==10 (unchanged on success). */ 8 return x + ok - 1; 9 }