diff options
author | Thomas Koenig <tkoenig@gcc.gnu.org> | 2012-09-22 10:32:51 +0000 |
---|---|---|
committer | Thomas Koenig <tkoenig@gcc.gnu.org> | 2012-09-22 10:32:51 +0000 |
commit | 417a7fc0dfa7118468cd5c74d515601697ce2a59 (patch) | |
tree | d28780de150087a52f20c89fad117dd77b374031 /gcc/fortran | |
parent | 6acad3ca2a2f9ac998b793854441211eb836b5b3 (diff) |
2012-09-22 Thomas König <tkoenig@gcc.gnu.org>
PR fortran/54599
* dependency.c (gfc_dep_compare_expr): Clarify logic,
remove dead code.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@191640 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/dependency.c | 33 |
2 files changed, 18 insertions, 21 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 6679a15ae20..983d305419d 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2012-09-22 Thomas König <tkoenig@gcc.gnu.org> + + PR fortran/54599 + * dependency.c (gfc_dep_compare_expr): Clarify logic, + remove dead code. + 2012-09-20 Tobias Burnus <burnus@net-b.de> PR fortran/54599 diff --git a/gcc/fortran/dependency.c b/gcc/fortran/dependency.c index 165ab4f0abb..7c9525ac805 100644 --- a/gcc/fortran/dependency.c +++ b/gcc/fortran/dependency.c @@ -395,30 +395,21 @@ gfc_dep_compare_expr (gfc_expr *e1, gfc_expr *e2) l = gfc_dep_compare_expr (e1->value.op.op1, e2->value.op.op1); r = gfc_dep_compare_expr (e1->value.op.op2, e2->value.op.op2); - if (l <= -2) + if (l != 0) return l; - if (l == 0) - { - /* Watch out for 'A ' // x vs. 'A' // x. */ - gfc_expr *e1_left = e1->value.op.op1; - gfc_expr *e2_left = e2->value.op.op1; - - if (e1_left->expr_type == EXPR_CONSTANT - && e2_left->expr_type == EXPR_CONSTANT - && e1_left->value.character.length - != e2_left->value.character.length) - return -2; - else - return r; - } + /* Left expressions of // compare equal, but + watch out for 'A ' // x vs. 'A' // x. */ + gfc_expr *e1_left = e1->value.op.op1; + gfc_expr *e2_left = e2->value.op.op1; + + if (e1_left->expr_type == EXPR_CONSTANT + && e2_left->expr_type == EXPR_CONSTANT + && e1_left->value.character.length + != e2_left->value.character.length) + return -2; else - { - if (l != 0) - return l; - else - return r; - } + return r; } /* Compare X vs. X-C, for INTEGER only. */ |