1 #include <stdint.h>
2 
3 volatile uint64_t x;
4 
main(int argc,char * argv[])5 int main(int argc, char *argv[])
6 {
7 	uint64_t old, new = argc;
8 
9 	argv = argv;
10 	do {
11 		old = __sync_val_compare_and_swap(&x, 0, 0);
12 	} while (!__sync_bool_compare_and_swap(&x, old, new));
13 	return old == new;
14 }
15