From 0819ba9b1047fb8cf9d094fedb3d1fb94e7d3bfa Mon Sep 17 00:00:00 2001 From: Luc Van Oostenryck Date: Fri, 7 Aug 2020 21:49:17 +0200 Subject: add testcases for __sync_{bool,val}_compare_and_swap() Signed-off-by: Luc Van Oostenryck --- validation/builtin-sync-cas.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 validation/builtin-sync-cas.c diff --git a/validation/builtin-sync-cas.c b/validation/builtin-sync-cas.c new file mode 100644 index 00000000..e289eba2 --- /dev/null +++ b/validation/builtin-sync-cas.c @@ -0,0 +1,26 @@ +static int *foo(int *ptr) +{ + __sync_val_compare_and_swap(ptr, 123, 0L); + return __sync_val_compare_and_swap(&ptr, ptr, ptr); +} + +static long bar(long *ptr) +{ + return __sync_val_compare_and_swap(ptr, ptr, 1); +} + +static _Bool boz(_Bool *ptr) +{ + return __sync_bool_compare_and_swap(ptr, 0, ptr); +} + +/* + * check-name: builtin-sync-cas + * check-known-to-fail + * + * check-error-start +builtin-sync-cas.c:9:49: warning: incorrect type in argument 2 (different base types) +builtin-sync-cas.c:9:49: expected long +builtin-sync-cas.c:9:49: got long *ptr + * check-error-end + */ -- cgit 1.2.3-korg