int main(int argc, char *argv[]) { char *c = &argc; short *s = &argc; int *i = &argc; long long *l = &argc; return __sync_fetch_and_add(c, -1) + __sync_fetch_and_add(s, -1) + __sync_fetch_and_add(i, -1) + __sync_fetch_and_add(l, -1) + __sync_val_compare_and_swap(c, argc, argc + 1) + __sync_val_compare_and_swap(s, argc, argc + 1) + __sync_val_compare_and_swap(i, argc, argc + 1) + __sync_val_compare_and_swap(l, argc, argc + 1); }