On Thu, Mar 16, 2017 at 1:19 PM, Dibyendu Majumdar <mobile@xxxxxxxxxxxxxxx> wrote: > > The issue is not with the type of %r6 but %arg3 and %arg4 if these > happen to be integer constants, and the function is variadic so we > cannot work out the type from the function prototype. Yes. Ok, I see the problem. I think we could add a 'size' to the pseudo, and solve it that way. CSE and other linearization artifacts may mean that the type is undefined, but the size should be well-defined. Alternatively - and this might be the better solution - the OP_CALL instruction might be better off split up a bit. Instead of having just that struct pseudo_list *arguments; that lists the arguments, maybe it should have a struct instruction_list *arguments; with a new OP_ARG instruction to generate the argument. That way all the arguments would have a size, and always a generating instruction. Linus -- 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