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 */