Hi, In this simple example: extern int printf(const char *, ...); int main(void) { printf("%f\n", (double)-1); return 0; } The linearized output is: main: .L0: <entry-point> symaddr.64 %r1 <- <anon symbol:000001BAAB487258> call.32 %r2 <- printf, %r1, $-1 ret.32 $0 The cast to double has been removed. I am trying to understand where this is happening as it seems to happen quite early on. Any tips on where I should look? Thanks and Regards Dibyendu -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html