On 27 January 2017 at 14:00, Dibyendu Majumdar <mobile@xxxxxxxxxxxxxxx> wrote: > foo *p = (foo *) malloc(sizeof(struct foo)); > There were two failures. First one occurs in the result of the > sizeof() expression - it seems the builder tries to create an integer > constant but passes LLVM a 'char *' as the type, which causes an > assertion failure in LLVM. This error occurs in pseudo_to_value() > function in sparse-llvm.c for the case PSEUDO_VAL. I worked around > this by checking if the type is a pointer and then asking LLVM to > create an integer constant of appropriate size (not sure why the type > is a pointer type here). > It seems that the sparse-llvm code is using the symbol associated with the instruction to work out the type of the PSEUDO_VAL which is incorrect? From what I can see PSEUDO_VAL is just an integer constant - is there a type associated with it? 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