Re: Sparse-LLVM issue compiling NULL pointers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Feb 28, 2017 at 4:09 PM, Luc Van Oostenryck
<luc.vanoostenryck@xxxxxxxxx> wrote:
> There is indeed some problems regarding this, we looked a bit at this
> some weeks ago. However I firmly believe that the information about
> the type belong to the operations and not the values.

I've taken a very quick look at this "mt->foo = (void *)0"
The type info is perfectly present.
If in sparse-llvm.c:output_op_store() you add somewhere something like:
    fprintf(stderr, "-> %s\n", show_typename(insn->type));
You will see that it display the expected type: "int *".
This is all the type info needed: it's the type of insn->target (the
value to be stored)
and the type of the dereferencing of insn->src (the (base) address).

The problem is that output_op_store() doesn't use this info, it tries to deduce
this type via pseudo_to_value() but pseudo_to_value() wrongly assumes that all
PSEUDO_VALUE-pseudo are integer.

Luc
--
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



[Index of Archives]     [Newbies FAQ]     [LKML]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Trinity Fuzzer Tool]

  Powered by Linux