aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/arith.h
diff options
context:
space:
mode:
authorTobias Burnus <burnus@gcc.gnu.org>2007-12-05 14:42:32 +0100
committerTobias Burnus <burnus@gcc.gnu.org>2007-12-05 14:42:32 +0100
commit7b4c5f8b9b0091733b4ae3377e294aa2651f8811 (patch)
tree5e83d0d41ff004471fcd506967d79fb199570a11 /gcc/fortran/arith.h
parent59b130b365bbb85a040ee7e1de221cf4aedb691a (diff)
downloadgcc-7b4c5f8b9b0091733b4ae3377e294aa2651f8811.zip
gcc-7b4c5f8b9b0091733b4ae3377e294aa2651f8811.tar.gz
gcc-7b4c5f8b9b0091733b4ae3377e294aa2651f8811.tar.bz2
re PR fortran/34333 (if(nan == nan) wrongly returns TRUE, when nan is a parameter)
2007-12-05 Tobias Burnus <burnus@net-b.de> PR fortran/34333 * arith.h (gfc_compare_expr): Add operator argument, needed for compare_real. * arith.c (gfc_arith_init_1): Use mpfr_min instead of * mpfr_cmp/set to account for NaN. (compare_real): New function, as mpfr_cmp but takes NaN into account. (gfc_compare_expr): Use compare_real. (compare_complex): Take NaN into account. (gfc_arith_eq,gfc_arith_ne,gfc_arith_gt,gfc_arith_ge,gfc_arith_lt, gfc_arith_le): Pass operator to gfc_compare_expr. * resolve.c (compare_cases,resolve_select): Pass operator to gfc_compare_expr. * simplify.c (simplify_min_max): Take NaN into account. 2007-12-05 Tobias Burnus <burnus@net-b.de> PR fortran/34333 * gfortran.dg/nan_2.f90: New. From-SVN: r130623
Diffstat (limited to 'gcc/fortran/arith.h')
-rw-r--r--gcc/fortran/arith.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/fortran/arith.h b/gcc/fortran/arith.h
index ea41279..67d7361 100644
--- a/gcc/fortran/arith.h
+++ b/gcc/fortran/arith.h
@@ -38,7 +38,7 @@ gfc_expr *gfc_constant_result (bt, int, locus *);
for overflow and underflow. */
arith gfc_range_check (gfc_expr *);
-int gfc_compare_expr (gfc_expr *, gfc_expr *);
+int gfc_compare_expr (gfc_expr *, gfc_expr *, gfc_intrinsic_op);
int gfc_compare_string (gfc_expr *, gfc_expr *);
/* Constant folding for gfc_expr trees. */