Re: [PATCH v2 00/27] LLVM fixes

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

 



On Sat, Mar 11, 2017 at 11:54:56AM +0000, Dibyendu Majumdar wrote:
> PSEUDO_VAL strikes again!
> 
> struct avl_node {
>  struct avl_node *right;
>  struct avl_node *left;
> };
> #define NULL ((void *)0)
> static int test_null_comp(int height_changed, struct avl_node *node) {
>  return node != NULL && height_changed;
> }

See the message of "llvm: fix translation of PSEUDO_VALs into a ValueRefs"
    Note: while this patch improve the situation, like for example for the
    test cases added here, it's still not correct because now we're making
    the assumption that 'insn->type' is the type we need for the pseudo.
    This is often true, but certainly not always.
    For example this is not true for:
    - OP_STORE/OP_LOAD's insn->src
    - OP_SET{EQ,...}'s   insn->src[12]
    - probably some  others ones
    - in general, obviously, for any instructions where the target has
      a different type than the operands.

Here you're hitting the OP_SET{EQ,...} case.

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