foo(int * ptr)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 bar(long * ptr)7static long bar(long *ptr) 8 { 9 return __sync_val_compare_and_swap(ptr, ptr, 1); 10 } 11 boz(_Bool * ptr)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 21 builtin-sync-cas.c:9:49: warning: incorrect type in argument 2 (different base types) 22 builtin-sync-cas.c:9:49: expected long 23 builtin-sync-cas.c:9:49: got long *ptr 24 * check-error-end 25 */ 26