aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorPaul Thomas <pault@gcc.gnu.org>2007-04-29 05:10:22 +0000
committerPaul Thomas <pault@gcc.gnu.org>2007-04-29 05:10:22 +0000
commit4f06d65b44483f00dd2397321cf599e4066950c3 (patch)
tree11549f2341c1d06579bf77fc3a920ae6e8098c82 /gcc/fortran
parentd10fb73e919c22a50a241b33b6a0d10aa752f70a (diff)
downloadgcc-4f06d65b44483f00dd2397321cf599e4066950c3.zip
gcc-4f06d65b44483f00dd2397321cf599e4066950c3.tar.gz
gcc-4f06d65b44483f00dd2397321cf599e4066950c3.tar.bz2
re PR fortran/31711 (was "rhs array is changed while assiging to same lhs array")
2007-04-29 Paul Thomas <pault@gcc.gnu.org> PR fortran/31711 * trans-array.c (gfc_conv_resolve_dependencies): Create a temp whenever a dependency is found. 2007-04-29 Paul Thomas <pault@gcc.gnu.org> PR fortran/31711 * gfortran.dg/dependency_21.f90: New test. From-SVN: r124269
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/trans-array.c2
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index ef1d6cb..6bba251 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2007-04-29 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/31711
+ * trans-array.c (gfc_conv_resolve_dependencies): Create a temp
+ whenever a dependency is found.
+
2007-04-28 Tobias Schlüter <tobi@gcc.gnu.org>
* options.c (gfc_handle_option): Ensure requested free form line
diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c
index b6a2ac0..92fd67c 100644
--- a/gcc/fortran/trans-array.c
+++ b/gcc/fortran/trans-array.c
@@ -3001,6 +3001,8 @@ gfc_conv_resolve_dependencies (gfc_loopinfo * loop, gfc_ss * dest,
rref = ss->expr->ref;
nDepend = gfc_dep_resolver (lref, rref);
+ if (nDepend == 1)
+ break;
#if 0
/* TODO : loop shifting. */
if (nDepend == 1)