diff options
author | Steven G. Kargl <kargl@gcc.gnu.org> | 2019-06-13 17:45:52 +0000 |
---|---|---|
committer | Steven G. Kargl <kargl@gcc.gnu.org> | 2019-06-13 17:45:52 +0000 |
commit | 7b6879b2db04384b7228f2aca4533be817b9efbd (patch) | |
tree | 5a27e2e554315d1165ede1f75f09d176b8ea3afb /gcc | |
parent | 342f89653affafb42ba578c876635a9ae4d06810 (diff) | |
download | gcc-7b6879b2db04384b7228f2aca4533be817b9efbd.zip gcc-7b6879b2db04384b7228f2aca4533be817b9efbd.tar.gz gcc-7b6879b2db04384b7228f2aca4533be817b9efbd.tar.bz2 |
re PR fortran/88810 (gcc/fortran/dependency.c:2200: possible cut'n'paste error ?)
2019-06-13 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/88810
* dependency.c (gfc_dep_resolver): Re-arrange code to make the logic
a bit more transparent. Fix 2 nearby formatting issues.
From-SVN: r272254
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/dependency.c | 56 |
2 files changed, 36 insertions, 26 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 897d773..ebff427 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2019-06-13 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/88810 + * dependency.c (gfc_dep_resolver): Re-arrange code to make the logic + a bit more transparent. Fix 2 nearby formatting issues. + 2019-06-13 Jakub Jelinek <jakub@redhat.com> * io.c (check_format): Use G_(...) instead of _(...) for error values, diff --git a/gcc/fortran/dependency.c b/gcc/fortran/dependency.c index ae0f803..8eae644 100644 --- a/gcc/fortran/dependency.c +++ b/gcc/fortran/dependency.c @@ -2141,7 +2141,7 @@ gfc_dep_resolver (gfc_ref *lref, gfc_ref *rref, gfc_reverse *reverse) /* Index for the reverse array. */ m = -1; - for (n=0; n < lref->u.ar.dimen; n++) + for (n = 0; n < lref->u.ar.dimen; n++) { /* Handle dependency when either of array reference is vector subscript. There is no dependency if the vector indices @@ -2163,7 +2163,8 @@ gfc_dep_resolver (gfc_ref *lref, gfc_ref *rref, gfc_reverse *reverse) if (lref->u.ar.dimen_type[n] == DIMEN_RANGE && rref->u.ar.dimen_type[n] == DIMEN_RANGE) - this_dep = check_section_vs_section (&lref->u.ar, &rref->u.ar, n); + this_dep = check_section_vs_section (&lref->u.ar, + &rref->u.ar, n); else if (lref->u.ar.dimen_type[n] == DIMEN_ELEMENT && rref->u.ar.dimen_type[n] == DIMEN_RANGE) this_dep = gfc_check_element_vs_section (lref, rref, n); @@ -2196,35 +2197,38 @@ gfc_dep_resolver (gfc_ref *lref, gfc_ref *rref, gfc_reverse *reverse) if (rref->u.ar.dimen_type[n] == DIMEN_RANGE && lref->u.ar.dimen_type[n] == DIMEN_RANGE) { - /* Set reverse if backward dependence and not inhibited. */ - if (reverse && reverse[m] == GFC_ENABLE_REVERSE) - reverse[m] = (this_dep == GFC_DEP_BACKWARD) ? - GFC_REVERSE_SET : reverse[m]; - - /* Set forward if forward dependence and not inhibited. */ - if (reverse && reverse[m] == GFC_ENABLE_REVERSE) - reverse[m] = (this_dep == GFC_DEP_FORWARD) ? - GFC_FORWARD_SET : reverse[m]; - - /* Flag up overlap if dependence not compatible with - the overall state of the expression. */ - if (reverse && reverse[m] == GFC_REVERSE_SET - && this_dep == GFC_DEP_FORWARD) + if (reverse) { - reverse[m] = GFC_INHIBIT_REVERSE; - this_dep = GFC_DEP_OVERLAP; - } - else if (reverse && reverse[m] == GFC_FORWARD_SET - && this_dep == GFC_DEP_BACKWARD) - { - reverse[m] = GFC_INHIBIT_REVERSE; - this_dep = GFC_DEP_OVERLAP; + /* Reverse if backward dependence and not inhibited. */ + if (reverse[m] == GFC_ENABLE_REVERSE + && this_dep == GFC_DEP_BACKWARD) + reverse[m] = GFC_REVERSE_SET; + + /* Forward if forward dependence and not inhibited. */ + if (reverse[m] == GFC_ENABLE_REVERSE + && this_dep == GFC_DEP_FORWARD) + reverse[m] = GFC_FORWARD_SET; + + /* Flag up overlap if dependence not compatible with + the overall state of the expression. */ + if (reverse[m] == GFC_REVERSE_SET + && this_dep == GFC_DEP_FORWARD) + { + reverse[m] = GFC_INHIBIT_REVERSE; + this_dep = GFC_DEP_OVERLAP; + } + else if (reverse[m] == GFC_FORWARD_SET + && this_dep == GFC_DEP_BACKWARD) + { + reverse[m] = GFC_INHIBIT_REVERSE; + this_dep = GFC_DEP_OVERLAP; + } } /* If no intention of reversing or reversing is explicitly inhibited, convert backward dependence to overlap. */ - if ((reverse == NULL && this_dep == GFC_DEP_BACKWARD) - || (reverse != NULL && reverse[m] == GFC_INHIBIT_REVERSE)) + if ((!reverse && this_dep == GFC_DEP_BACKWARD) + || (reverse && reverse[m] == GFC_INHIBIT_REVERSE)) this_dep = GFC_DEP_OVERLAP; } |