1static int ok_int(int *ptr, int val) 2{ 3 return __sync_add_and_fetch(ptr, val); 4} 5 6static long* ok_ptr(long **ptr, long *val) 7{ 8 return __sync_add_and_fetch(ptr, val); 9} 10 11static void chk_ret_ok(long *ptr, long val) 12{ 13 _Static_assert([typeof(__sync_add_and_fetch(ptr, val))] == [long], ""); 14} 15 16static 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