Re: Output from linearize and LLVM error

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

 



On Fri, Jan 27, 2017 at 08:07:17PM +0100, Luc Van Oostenryck wrote:
> On Fri, Jan 27, 2017 at 06:18:07PM +0000, Dibyendu Majumdar wrote:
> > H Luc,
> > 
> > On 27 January 2017 at 17:11, Dibyendu Majumdar <mobile@xxxxxxxxxxxxxxx> wrote:
> > > On 27 January 2017 at 15:59, Van Oostenryck Luc
> > > <luc.vanoostenryck@xxxxxxxxx> wrote:
> > >> I think both problems are already addressed but the patches haven't
> > >> yet been handled.
> > >>
> > >> You may look at:
> > >> - https://patchwork.kernel.org/patch/9469701/
> > 
> > I had a look at the two patches. I think this one is only for
> > comparison operations? So the particular failure I saw will still
> > occur I think.
> 
> Yes, indeed.
> I've quickly looked at your test case;
> It seems to be related to a type problem, probably related to
> size_t.(I see:
> 	... call i8* @alloc(i0 4)
> and this 'i0' is very suspect.
> The following also fail because of a type problem but with the pointer.
> Even with replacing the pointers by void pointers it gives:
> 	i64  %0 = call i8* @malloc(i0 4)
> where the i64 is clearly wrong.
> It's possible that this late problem is a side effect of my second
> patch, I'll  investigate this tommorow.
> 

It seems that (at least a part of) your problem that malloc()
is called with a constant value and this is not handled correctly
by sparse-llvm. If the size is not a constant but given as argument
to testfunc() things are OK.

To get the type of malloc()'s arg and this is done by calling
pseudo_to_value() with the malloc instruction and the pseudo
for the size (but no info about this pseudo being malloc()'s arg).
LLVMConstInt() is then called with the constant value and the type
is given by calling insn_symbol_type() with the malloc instruction
but again, it's not possible to get the right type without specifying
we try to get the type of the first argument of the called function
and not the type of the result.

But maybe, you have already see this.

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