Re: regressions on HEAD

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

 



On Sat, Feb 24, 2018 at 3:30 PM, Christopher Li <sparse@xxxxxxxxxxx> wrote:
> On Sat, Feb 24, 2018 at 2:00 PM, Luc Van Oostenryck
> <luc.vanoostenryck@xxxxxxxxx> wrote:
>> Hi Chris,
>>
>> I saw that a few patches have been pushed on the head,
>> including the two I disagreed with and which I explained *why*
>> they where wrong. Well.
>>
>> Meanwhile, I see some regressions with the current head.
>> For example some simple programs like:
>>         void a(void)
>>         {
>>                 int b[] = { 8 };
>>                 int c;
>>                 for (;;)
>>                         b[c] = b[0];
>>         }
>> now crashes when used with test-linearize.
>
> Oops, reproduced. Thanks for the report.
>
> I see pseudo->ident  polluted by pseudo->size.
> Separate them out of the union seems to fix the crash.

Right, that is the exactly the course. I found the place that
use the ident without limit to PSEUDO_VAL.

found_dominator:
br = delete_last_instruction(&parent->insns);
phi = alloc_phi(parent, one->target, one->size);
phi->ident = phi->ident ? : one->target->ident; <=================
add_instruction(&parent->insns, br);
use_pseudo(insn, phi, add_pseudo(dominators, phi));
} END_FOR_EACH_PTR(parent);

So separate the "ident" and "size"  in the union should fix this crash.
A little bit too aggressive on saving space.

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