OSDN Git Service

Fix illogical logic.
authorkargl <kargl@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 26 Mar 2005 18:33:53 +0000 (18:33 +0000)
committerkargl <kargl@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 26 Mar 2005 18:33:53 +0000 (18:33 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@97082 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/fortran/ChangeLog
gcc/fortran/arith.c

index 5e93f5f..04b9e40 100644 (file)
@@ -1,3 +1,7 @@
+2005-03-26  Steven G. Kargl  <kargls@comcast.net>
+
+       * arith.c (check_result): Fix illogical logic.
+
 2005-03-26  Canqun Yang  <canqun@nudt.edu.cn>
 
        * trans-common.c (create_common): Build RECORD_NODE for common blocks
 2005-03-26  Canqun Yang  <canqun@nudt.edu.cn>
 
        * trans-common.c (create_common): Build RECORD_NODE for common blocks
index 5871c55..50e2d06 100644 (file)
@@ -552,21 +552,27 @@ gfc_range_check (gfc_expr * e)
 static arith
 check_result (arith rc, gfc_expr * x, gfc_expr * r, gfc_expr ** rp)
 {
 static arith
 check_result (arith rc, gfc_expr * x, gfc_expr * r, gfc_expr ** rp)
 {
-  if (rc != ARITH_OK)
-    gfc_free_expr (r);
-  else
-    {
-      if (rc == ARITH_UNDERFLOW && gfc_option.warn_underflow)
-        gfc_warning ("%s at %L", gfc_arith_error (rc), &x->where);
+  arith val = rc;
 
 
-      if (rc == ARITH_ASYMMETRIC)
-       gfc_warning ("%s at %L", gfc_arith_error (rc), &x->where);
+  if (val == ARITH_UNDERFLOW)
+    {
+      if (gfc_option.warn_underflow)
+       gfc_warning ("%s at %L", gfc_arith_error (val), &x->where);
+      val = ARITH_OK;
+    }
 
 
-      rc = ARITH_OK;
-      *rp = r;
+  if (val == ARITH_ASYMMETRIC)
+    {
+      gfc_warning ("%s at %L", gfc_arith_error (val), &x->where);
+      val = ARITH_OK;
     }
 
     }
 
-  return rc;
+  if (val != ARITH_OK)
+    gfc_free_expr (r);
+  else
+    *rp = r;
+
+  return val;
 }
 
 
 }