]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR fortran/54599 (Issues found in gfortran by the Coverity Scan)
authorThomas Koenig <tkoenig@gcc.gnu.org>
Sat, 22 Sep 2012 10:32:51 +0000 (10:32 +0000)
committerThomas Koenig <tkoenig@gcc.gnu.org>
Sat, 22 Sep 2012 10:32:51 +0000 (10:32 +0000)
2012-09-22  Thomas König  <tkoenig@gcc.gnu.org>

PR fortran/54599
* dependency.c (gfc_dep_compare_expr):  Clarify logic,
remove dead code.

From-SVN: r191640

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

index 6679a15ae20f23e53506370ff64c648f8889a8e9..983d305419d1ff9b6951a919571751a5d7a16fb7 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 165ab4f0abbdac3be42c72697442f9f54238f2d9..7c9525ac805d9c6b88c1c4984a63305c8564a535 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.  */