[gfortran,patch] Don't evaluate substring bounds multiple times
François-Xavier Coudert
fxcoudert@gmail.com
Mon May 7 08:10:00 GMT 2007
Hi all,
Please find attached an amended version of this patch. The first one
created a missed-optimization in references such as string(i:i), which
wasn't recognized as a one-character string any more (breaking
testcase gfortran.dg/single_char_string.f90 [1]). The new version of
the patch avoids calling gfc_evaluate_now() if the start or end bound
is a reference to a variable.
Bootstrapped and regtested on i686-linux, OK for mainline? OK for 4.2?
(the backport is trivial and with low risk, that part of the front-end
hasn't changed since branching; I'd go for it myself, but wanted to
ask for opinions here)
FX
2007-05-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
PR fortran/31725
* trans-expr.c (gfc_conv_substring): Evaluate substring bounds
only once.
2007-05-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
PR fortran/31725
* gfortran.dg/substr_4.f: New test.
> Attached patch fixes PR31725: we currently evaluate multiple times
> the bounds of a substring, which of course leads to nasty wrong-code
> bugs when said bounds have side effects. This simple two-lines patch
>
>
> Bootstrapped && regtested on i686-linux, comes with a testcase from
> the PR. OK for mainline? Is that nasty enough that we want to
> backport it to 4.2? (the backport is trivial and with low risk, that
> part of the front-end hasn't changed since branching; I'd go for it
> myself, but wanted to ask for opinions here)
More information about the Fortran
mailing list