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