aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2020-08-07 21:49:17 +0200
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2020-08-07 22:02:39 +0200
commit0819ba9b1047fb8cf9d094fedb3d1fb94e7d3bfa (patch)
tree143ab62dbaf68012c5a4ad2de2a64e54c4896d4f
parente1578773182e8f69c3a0cd8add8dfbe7561a8240 (diff)
downloadsparse-0819ba9b1047fb8cf9d094fedb3d1fb94e7d3bfa.tar.gz
add testcases for __sync_{bool,val}_compare_and_swap()
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
-rw-r--r--validation/builtin-sync-cas.c26
1 files changed, 26 insertions, 0 deletions
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
+ */