1static int *foo(int *ptr) 2{ 3 __sync_val_compare_and_swap(ptr, 123, 0L); 4 return __sync_val_compare_and_swap(&ptr, ptr, ptr); 5} 6 7static long bar(long *ptr) 8{ 9 return __sync_val_compare_and_swap(ptr, ptr, 1); 10} 11 12static _Bool boz(_Bool *ptr) 13{ 14 return __sync_bool_compare_and_swap(ptr, 0, ptr); 15} 16 17/* 18 * check-name: builtin-sync-cas 19 * 20 * check-error-start 21builtin-sync-cas.c:9:49: warning: incorrect type in argument 2 (different base types) 22builtin-sync-cas.c:9:49: expected long 23builtin-sync-cas.c:9:49: got long *ptr 24 * check-error-end 25 */ 26