From 12194c388f00739381f3c75737275d6a2862cb37 Mon Sep 17 00:00:00 2001 From: Richard Stallman Date: Thu, 3 Jun 1993 22:53:46 +0000 Subject: [PATCH] (immed_real_const_1): Check explicitly for NaNs. From-SVN: r4626 --- gcc/varasm.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gcc/varasm.c b/gcc/varasm.c index fea708389a3..67954442233 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -1418,7 +1418,11 @@ immed_real_const_1 (d, mode) /* Avoid REAL_VALUES_EQUAL here in order to distinguish minus zero. */ if (!bcmp (&dconst0, &d, sizeof d)) return CONST0_RTX (mode); - else if (REAL_VALUES_EQUAL (dconst1, d)) + /* Check for NaN first, because some ports (specifically the i386) do not + emit correct ieee-fp code by default, and thus will generate a core + dump here if we pass a NaN to REAL_VALUES_EQUAL and if REAL_VALUES_EQUAL + does a floating point comparison. */ + else if (! REAL_VALUE_ISNAN (d) && REAL_VALUES_EQUAL (dconst1, d)) return CONST1_RTX (mode); if (sizeof u == 2 * sizeof (HOST_WIDE_INT)) -- 2.30.2