/tmp/retcast.c:38:7: warning: cast to 'void *' from smaller integer type 'int' [-Wint-to-pointer-cast] x = xpow(2,2); ^ /tmp/retcast.c:33:26: note: expanded from macro 'xpow' #define xpow(x,y) __tg_real_complex_pow((x), (y)) ^ /tmp/retcast.c:24:38: note: expanded from macro '__tg_real_complex_pow' #define __tg_real_complex_pow(x, y) (__RETCAST_2(x, y)( \ ^ /tmp/retcast.c:17:3: note: expanded from macro '__RETCAST_2' (void *)!((!__IS_FP(x) || !__IS_FP(y)) && __FLT((x)+(y)+1.0f))))0 : \ ^ /tmp/retcast.c:38:7: warning: cast to 'void *' from smaller integer type 'int' [-Wint-to-pointer-cast] x = xpow(2,2); ^ /tmp/retcast.c:33:26: note: expanded from macro 'xpow' #define xpow(x,y) __tg_real_complex_pow((x), (y)) ^ /tmp/retcast.c:24:38: note: expanded from macro '__tg_real_complex_pow' #define __tg_real_complex_pow(x, y) (__RETCAST_2(x, y)( \ ^ /tmp/retcast.c:21:3: note: expanded from macro '__RETCAST_2' (void *)((!__IS_FP(x) || !__IS_FP(y)) && (__FLT((x)+(y)+1.0f) || __FLTCX((x)+(y))))))0 ))) ^ /tmp/retcast.c:38:5: error: assigning to 'double' from incompatible type 'typeof (*(0 ? (typeof (0 ? (double *)0 : (void *)!((!!!((1 ? 1 : ((2))) / 2) || !!!((1 ? 1 : ((2))) / 2)) && ((!!((1 ? 1 : (((2)) + ((2)) + 1.F)) / 2) && 2 * sizeof (((2)) + ((2)) + 1.F) == sizeof ((((2)) + ((2)) + 1.F) + (__extension__ 1.Fi))) && sizeof (((2)) + ((2)) + 1.F) == sizeof(float)))))0 : 0 ? (typeof (0 ? (_Complex double *)0 : (void *)!((!!!((1 ? 1 : ((2))) / 2) || !!!((1 ? 1 : ((2))) / 2)) && ((!!((1 ? 1 : (((2)) + ((2)))) / 2) && sizeof (((2)) + ((2))) == sizeof ((((2)) + ((2))) + (__extension__ 1.Fi))) && sizeof (((2)) + ((2))) == sizeof(_Complex float)))))0 : (typeof (0 ? (typeof (((2)) + ((2))) *)0 : (void *)((!!!((1 ? 1 : ((2))) / 2) || !!!((1 ? 1 : ((2))) / 2)) && (((!!((1 ? 1 : (((2)) + ((2)) + 1.F)) / 2) && 2 * sizeof (((2)) + ((2)) + 1.F) == sizeof ((((2)) + ((2)) + 1.F) + (__extension__ 1.Fi))) && sizeof (((2)) + ((2)) + 1.F) == sizeof(float)) || ((!!((1 ? 1 : (((2)) + ((2)))) / 2) && sizeof (((2)) + ((2))) == sizeof ((((2)) + ((2))) + (__extension__ 1.Fi))) && sizeof (((2)) + ((2))) == sizeof(_Complex float))))))0))' (aka 'void') x = xpow(2,2); ^ ~~~~~~~~~ 2 warnings and 1 error generated.