diff options
author | Harald Anlauf <anlauf@gmx.de> | 2023-10-16 21:02:20 +0200 |
---|---|---|
committer | Harald Anlauf <anlauf@gmx.de> | 2023-10-17 18:55:22 +0200 |
commit | 5ac63ec5da2e93226457bea4dbb3a4f78d5d82c2 (patch) | |
tree | 91ea2baa5d5d95216ff0a31b2bfb4ae190c7857b /gcc/fortran/frontend-passes.cc | |
parent | 43c2f85f52c8400b7204e24400c52c3173c50735 (diff) | |
download | gcc-5ac63ec5da2e93226457bea4dbb3a4f78d5d82c2.zip gcc-5ac63ec5da2e93226457bea4dbb3a4f78d5d82c2.tar.gz gcc-5ac63ec5da2e93226457bea4dbb3a4f78d5d82c2.tar.bz2 |
Fortran: out of bounds access with nested implied-do IO [PR111837]
gcc/fortran/ChangeLog:
PR fortran/111837
* frontend-passes.cc (traverse_io_block): Dependency check of loop
nest shall be triangular, not banded.
gcc/testsuite/ChangeLog:
PR fortran/111837
* gfortran.dg/implied_do_io_8.f90: New test.
Diffstat (limited to 'gcc/fortran/frontend-passes.cc')
-rw-r--r-- | gcc/fortran/frontend-passes.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/fortran/frontend-passes.cc b/gcc/fortran/frontend-passes.cc index 136a292..536884b 100644 --- a/gcc/fortran/frontend-passes.cc +++ b/gcc/fortran/frontend-passes.cc @@ -1326,7 +1326,7 @@ traverse_io_block (gfc_code *code, bool *has_reached, gfc_code *prev) if (iters[i]) { gfc_expr *var = iters[i]->var; - for (int j = i - 1; j < i; j++) + for (int j = 0; j < i; j++) { if (iters[j] && (var_in_expr (var, iters[j]->start) |