| // SPDX-License-Identifier: GPL-2.0 | |
| #include <stdint.h> | |
| volatile uint64_t x; | |
| int main(int argc, char *argv[]) | |
| { | |
| uint64_t old, new = argc; | |
| argv = argv; | |
| do { | |
| old = __sync_val_compare_and_swap(&x, 0, 0); | |
| } while (!__sync_bool_compare_and_swap(&x, old, new)); | |
| return old == new; | |
| } |