On 11 March 2017 at 20:44, Luc Van Oostenryck > But there is still some bad issues that remains, > for example pointer subtraction with NULL and some > optimization that destroy correct typing info. > They're bad enough to make me doubt of the value of this change. > > Here are some failing cases: > #define NULL ((void *)0) > int tst(int *ip) { return !ip; } > int foo(int *ip) { return ip != NULL; } > long bar(void *vp) { return vp - NULL; } > long baz(int *ip) { return ip - ((int *)0); } > I only get a failure on the last one. But I am synced with master - so it may be an issue with sparse-next branch? For the last one, looks like linearized output is incorrect? baz: .L6: <entry-point> divs.64 %r13 <- %arg1, $4 scast.32 %r14 <- (64) %r13 ret.32 %r14 -- 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