+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
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);
- 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;
+ if (val != ARITH_OK)
+ gfc_free_expr (r);
+ else
+ *rp = r;
+
+ return val;