I just thought up this variant, I'm about to test it, but H.J., do you see any problems with it? #define itype(x) \ __typeof__(__builtin_choose_expr(sizeof(*(x)) > sizeof(0UL), 0ULL, 0UL)) I tried it out with a small test program (attached), and it seems to work. Next for using it in the kernel... -hpa