https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118779

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #0)
> In the source, those 2 loops are
>   {
>     { gcv_object_t* offset = 0;
>     { uintWL count = oldsize;
>     do {
>       { object oldentry =
>        
> *(gcv_object_t*)(((UBYTE*)(&((Svector)((oint)(((STACK[-1-(sintP)(2)])))-
> 1UL))->data[0])+((aint)offset))
>                                                   );
[...]
>       offset++;

so PTA will likely compute 'offset' as pointing to null (aka nothing) and
as we track pointers through integers the

 &... + (aint)offset

compute might have the same effect as always adjusting the pointer by zero
for the purpose of PTA.  It also might then fold

  if (offset_108 != _124)

Of course it depends on the IL what actually happens.

>     }} while (--count);

Reply via email to