diff options
author | Jan Dubois <jand@activestate.com> | 2006-03-22 14:49:11 -0800 |
---|---|---|
committer | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2006-03-23 09:58:22 +0000 |
commit | cab190d4d715e2c6ec26ee0ebfd0bc6fb0f03bd3 (patch) | |
tree | c3e965c0a96cfea8739dcaafefe2f784201da4ea /pp.c | |
parent | 0905937dfb35f5c5812cb6d7a8ed9334fb7fa7d9 (diff) | |
download | perl-cab190d4d715e2c6ec26ee0ebfd0bc6fb0f03bd3.tar.gz |
RE: [PATCH, no, really!] Re: [perl #38779] NAN's on Win32
From: "Jan Dubois" <jand@ActiveState.com>
Message-ID: <060201c64e45$e4ca7020$2217a8c0@candy>
Also, back out change #27567.
p4raw-link: @27567 on //depot/perl: 9bf76a6a2fc16ab628a46452e34352d3e3d71674
p4raw-id: //depot/perl@27576
Diffstat (limited to 'pp.c')
-rw-r--r-- | pp.c | 35 |
1 files changed, 35 insertions, 0 deletions
@@ -1714,8 +1714,15 @@ PP(pp_lt) } #endif { +#if defined(NAN_COMPARE_BROKEN) && defined(Perl_isnan) + dPOPTOPnnrl; + if (Perl_isnan(left) || Perl_isnan(right)) + RETSETNO; + SETs(boolSV(left < right)); +#else dPOPnv; SETs(boolSV(TOPn < value)); +#endif RETURN; } } @@ -1790,8 +1797,15 @@ PP(pp_gt) } #endif { +#if defined(NAN_COMPARE_BROKEN) && defined(Perl_isnan) + dPOPTOPnnrl; + if (Perl_isnan(left) || Perl_isnan(right)) + RETSETNO; + SETs(boolSV(left > right)); +#else dPOPnv; SETs(boolSV(TOPn > value)); +#endif RETURN; } } @@ -1866,8 +1880,15 @@ PP(pp_le) } #endif { +#if defined(NAN_COMPARE_BROKEN) && defined(Perl_isnan) + dPOPTOPnnrl; + if (Perl_isnan(left) || Perl_isnan(right)) + RETSETNO; + SETs(boolSV(left <= right)); +#else dPOPnv; SETs(boolSV(TOPn <= value)); +#endif RETURN; } } @@ -1942,8 +1963,15 @@ PP(pp_ge) } #endif { +#if defined(NAN_COMPARE_BROKEN) && defined(Perl_isnan) + dPOPTOPnnrl; + if (Perl_isnan(left) || Perl_isnan(right)) + RETSETNO; + SETs(boolSV(left >= right)); +#else dPOPnv; SETs(boolSV(TOPn >= value)); +#endif RETURN; } } @@ -2011,8 +2039,15 @@ PP(pp_ne) } #endif { +#if defined(NAN_COMPARE_BROKEN) && defined(Perl_isnan) + dPOPTOPnnrl; + if (Perl_isnan(left) || Perl_isnan(right)) + RETSETYES; + SETs(boolSV(left != right)); +#else dPOPnv; SETs(boolSV(TOPn != value)); +#endif RETURN; } } |