[Bug fortran/43072] unneeded temporary (s=s+f(a))

tkoenig at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Jan 15 22:19:00 GMT 2019


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

--- Comment #10 from Thomas Koenig <tkoenig at gcc dot gnu.org> ---
Author: tkoenig
Date: Tue Jan 15 22:18:55 2019
New Revision: 267953

URL: https://gcc.gnu.org/viewcvs?rev=267953&root=gcc&view=rev
Log:
2019-01-15  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/43072
        * resolve.c (resolve_array_ref): Add equal_length argument; set it
        if the length of the substring equals that of the orignal
        variable.
        (resolve_ref): Remove the substring if it is equal in length to
        the original variable, unless it is an EXPR_SUBSTRING).

2019-01-15  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/43072
        * gfortran.dg/actual_array_substr_3.f90: New test.


Added:
    trunk/gcc/testsuite/gfortran.dg/actual_array_substr_3.f90
Modified:
    trunk/gcc/fortran/ChangeLog
    trunk/gcc/fortran/resolve.c
    trunk/gcc/testsuite/ChangeLog


More information about the Gcc-bugs mailing list