Sparse IR generates a type of pseudo known as PSEUDO_VAL. This represents an integer value of size up to 64-bits (long long). Both pointers and integer values may be represented using such pseudos. Normally the associated Sparse IR instruction provides additional information such as type / size / signedness, etc. However in certain conditions such as when calling a variadic function, there may not be any information available other than the value itself; this can mean that when calling variadic functions, a backend code generator such as sparse-llvm, does not know the intended size of the argument, and cannot emit code correctly. For previous discussion of this issue please see: https://marc.info/?l=linux-sparse&m=151060861909217&w=2 https://marc.info/?l=linux-sparse&m=148968793623434&w=2 https://marc.info/?l=linux-sparse&m=148969555725868&w=2 https://marc.info/?l=linux-sparse&m=148924738713657&w=2 https://marc.info/?l=linux-sparse&m=148852426115193&w=2
Do you know of any other conditions than the variadic args?