GNU Linux-libre 4.19.286-gnu1
[releases.git] / tools / build / feature / test-sync-compare-and-swap.c
1 // SPDX-License-Identifier: GPL-2.0
2 #include <stdint.h>
3
4 volatile uint64_t x;
5
6 int main(int argc, char *argv[])
7 {
8         uint64_t old, new = argc;
9
10         argv = argv;
11         do {
12                 old = __sync_val_compare_and_swap(&x, 0, 0);
13         } while (!__sync_bool_compare_and_swap(&x, old, new));
14         return old == new;
15 }