On Sun, May 19, 2013 at 3:48 AM, Pekka Enberg <penberg@xxxxxxxxxx> wrote: > How did you find about this? Is this needed to fix a reproducible issue? I was debugging like (p == 0) and noticed that sparse lost this cast to pointers. A more serious problem in evaluate_compare() is that sparse evaluates comparisons to bool, which should have been int, according to the C standard. For example, sparse incorrectly evaluates sizeof(1 == 0) to 1, while gcc and clang evaluate this to 4 (i.e., sizeof(int)). Similar problems exist when sparse evaluates other conditional expressions, such as !, &&, ||. This also confuses sparse-llvm. For example, given OP_AND_BOOL x, y, should sparse-llvm assume that x and y can be int, bool, or some other type? - xi -- 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