diff options
| author | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2020-08-08 18:44:49 +0200 |
|---|---|---|
| committer | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2020-08-08 18:44:49 +0200 |
| commit | 13252024246cc03fc8cc0d812c61421f96faa3c7 (patch) | |
| tree | 124c3c44c320855768308c338f618bcb5526b395 /validation | |
| parent | ed14a50f8ff71d1b6c0ddaab9465b689482fff4d (diff) | |
| parent | 561d0af146666fde424da06a994b9f9016ba6e05 (diff) | |
| download | sparse-dev-13252024246cc03fc8cc0d812c61421f96faa3c7.tar.gz | |
Merge branch 'sync-cas' into next
* fix evaluation of __sync_{bool,val}_compare_and_swap()
Diffstat (limited to 'validation')
| -rw-r--r-- | validation/builtin-sync-cas.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/validation/builtin-sync-cas.c b/validation/builtin-sync-cas.c new file mode 100644 index 00000000..846e21bb --- /dev/null +++ b/validation/builtin-sync-cas.c @@ -0,0 +1,25 @@ +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-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 + */ |
