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

Mikael Morin <mikael at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|ASSIGNED                    |RESOLVED
         Depends on|                            |127611

--- Comment #6 from Mikael Morin <mikael at gcc dot gnu.org> ---
(In reply to Mikael Morin from comment #0)
> Here is the analysis for the 25* FAILs.
> The code for the z1 => y1 pointer assignment shows in the dump as:
>   z1._vptr = y1._vptr;
>   z1._data = y1._data;
>   z1._data.data = NON_LVALUE_EXPR <y1._data.data>;
>   z1._data.span = y1._vptr->_size;
> 
> The explicit data assignment is redundant, but harmless.
> The explicit span assignment is wrong and should be removed.
> 
> 
> Failures 43* and 44* are similar to 25*.
The fix pushed as r17-4529 fixed that part.

(In reply to Mikael Morin from comment #1)
> (In reply to Mikael Morin from comment #0)
> > Failures 23* and 24* need more analysis.
> 
> For the 24* failures:
> The copy to a temporary:
>     (*(struct t1[0:] * restrict) atmp.54.data)[S.55] = *(struct t1 *)
> (z1._data.data + (sizetype) (((S.55 + D.5217) * D.5219 + D.5202) *
> z1._vptr->_size));
> 
> is using the size from the vptr as span, which is assuming z1 to be
> contiguous.
> 
> 
> The 23* failures use y1._vptr._size similarly.
These are remaining failures and are tracked as PR127611.
Closing this PR.


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127611
[Bug 127611] Polymorphic array pointer access use the size from the vptr as
span

Reply via email to