[Bug fortran/38033] Bounds of a pointer/allocatable array not stabilized
pault at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Fri Nov 7 14:01:00 GMT 2008
------- Comment #2 from pault at gcc dot gnu dot org 2008-11-07 13:59 -------
(In reply to comment #1)
> (In reply to comment #0)
> Removes the _gfortran_size0 calls from the loop but I have not yet located the
> doubling up of calls here:
>
> D.1551 = temp.offset;
> D.1552 = &a;
> D.1553 = (integer(kind=8)) (integer(kind=4)) _gfortran_size0 (D.1552);
> D.1554 = &a;
> D.1555 = (integer(kind=8)) (integer(kind=4)) _gfortran_size0 (D.1554) + -1
The second call and stabilization of &a comes from the patch in #1. The first
is from gfc_conv_section_startstride, after:
/* Similarly calculate the end. Although this is not used in the
scalarizer, it is needed when checking bounds and where the end
is an expression with side-effects. */
Thus, rather than using loop->to[n], we will probably have to detect
GFC_SS_SECTION && ss->data.info.end[n] and the use ss->data.info.start[n] and
ss->data.info.end[n].
I'm working on it!
Paul
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38033
More information about the Gcc-bugs
mailing list