1#include <stdint.h>
2
3volatile uint64_t x;
4
5int 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