2012-09-22 Thomas König <tkoenig@gcc.gnu.org>
authortkoenig <tkoenig@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 22 Sep 2012 10:32:51 +0000 (10:32 +0000)
committertkoenig <tkoenig@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 22 Sep 2012 10:32:51 +0000 (10:32 +0000)
PR fortran/54599
* dependency.c (gfc_dep_compare_expr):  Clarify logic,
remove dead code.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191640 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/fortran/ChangeLog
gcc/fortran/dependency.c

index 6679a15..983d305 100644 (file)
@@ -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
index 165ab4f..7c9525a 100644 (file)
@@ -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.  */