ok_int(int * ptr,int val)1 static int ok_int(int *ptr, int val)
2 {
3 return __sync_add_and_fetch(ptr, val);
4 }
5
ok_ptr(long ** ptr,long * val)6 static long* ok_ptr(long **ptr, long *val)
7 {
8 return __sync_add_and_fetch(ptr, val);
9 }
10
chk_ret_ok(long * ptr,long val)11 static void chk_ret_ok(long *ptr, long val)
12 {
13 _Static_assert([typeof(__sync_add_and_fetch(ptr, val))] == [long], "");
14 }
15
chk_val(int * ptr,long val)16 static int chk_val(int *ptr, long val)
17 {
18 // OK: val is converted to an int
19 return __sync_add_and_fetch(ptr, val);
20 }
21
22 /*
23 * check-name: builtin-sync-fetch
24 */
25