aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorFrancois-Xavier Coudert <fxcoudert@gcc.gnu.org>2007-10-30 21:48:23 +0000
committerFrançois-Xavier Coudert <fxcoudert@gcc.gnu.org>2007-10-30 21:48:23 +0000
commite1332188a4c377db70d82b8e6a5df3961b1a4499 (patch)
tree4125a8d021413c2a8a2a29fe5a5ffea8fbe7f4e0 /gcc/fortran
parent7e79298c1df4fa6a3f3fc4265cd75ce7501e423d (diff)
downloadgcc-e1332188a4c377db70d82b8e6a5df3961b1a4499.zip
gcc-e1332188a4c377db70d82b8e6a5df3961b1a4499.tar.gz
gcc-e1332188a4c377db70d82b8e6a5df3961b1a4499.tar.bz2
re PR fortran/33596 (ICE with simplified ISNAN)
PR fortran/33596 * trans-intrinsic.c (gfc_conv_intrinsic_isnan): Strip NOP_EXPR from the result of build_call_expr. * gfortran.dg/isnan_2.f90: New test. From-SVN: r129782
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/trans-intrinsic.c1
2 files changed, 7 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index a761a95..c7c99bf 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2007-10-30 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/33596
+ * trans-intrinsic.c (gfc_conv_intrinsic_isnan): Strip NOP_EXPR
+ from the result of build_call_expr.
+
2007-10-29 Paul Thomas <pault@gcc.gnu.org>
PR fortran/31217
diff --git a/gcc/fortran/trans-intrinsic.c b/gcc/fortran/trans-intrinsic.c
index 7cc0c6f..24f2442 100644
--- a/gcc/fortran/trans-intrinsic.c
+++ b/gcc/fortran/trans-intrinsic.c
@@ -2757,6 +2757,7 @@ gfc_conv_intrinsic_isnan (gfc_se * se, gfc_expr * expr)
gfc_conv_intrinsic_function_args (se, expr, &arg, 1);
se->expr = build_call_expr (built_in_decls[BUILT_IN_ISNAN], 1, arg);
+ STRIP_TYPE_NOPS (se->expr);
se->expr = fold_convert (gfc_typenode_for_spec (&expr->ts), se->expr);
}