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