mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-24 03:14:08 +08:00
emit-rtl.c (gen_lowpart_common): Disable optimization of initialized float-int union if the value is a NaN.
* emit-rtl.c (gen_lowpart_common): Disable optimization of initialized float-int union if the value is a NaN. From-SVN: r22371
This commit is contained in:
parent
520c987d6a
commit
7e3e369cdf
@ -1,3 +1,8 @@
|
||||
Wed Sep 9 23:31:36 1998 (Stephen L Moshier) <moshier@world.std.com>
|
||||
|
||||
* emit-rtl.c (gen_lowpart_common): Disable optimization of
|
||||
initialized float-int union if the value is a NaN.
|
||||
|
||||
Wed Sep 9 23:00:48 1998 Nathan Sidwell <nathan@acm.org>
|
||||
|
||||
* c-lex.c (real_yylex): Don't warn about long long constants if
|
||||
|
@ -774,6 +774,9 @@ gen_lowpart_common (mode, x)
|
||||
|
||||
i = INTVAL (x);
|
||||
r = REAL_VALUE_FROM_TARGET_SINGLE (i);
|
||||
/* Avoid changing the bit pattern of a NaN. */
|
||||
if (REAL_VALUE_ISNAN (r))
|
||||
return 0;
|
||||
return CONST_DOUBLE_FROM_REAL_VALUE (r, mode);
|
||||
}
|
||||
#else
|
||||
@ -812,6 +815,8 @@ gen_lowpart_common (mode, x)
|
||||
i[0] = low, i[1] = high;
|
||||
|
||||
r = REAL_VALUE_FROM_TARGET_DOUBLE (i);
|
||||
if (REAL_VALUE_ISNAN (r))
|
||||
return 0;
|
||||
return CONST_DOUBLE_FROM_REAL_VALUE (r, mode);
|
||||
}
|
||||
#else
|
||||
|
Loading…
Reference in New Issue
Block a user