diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 2015-12-04 18:22:30 -0500 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2015-12-04 21:28:06 -0500 |
commit | 406d5545e79665094180534380eba323110f99bc (patch) | |
tree | 65f794bed67c485fc6e74904dac8603a9703fb07 /numeric.c | |
parent | df3d8cc3eeca597a21c2d7ad7686adbef4df784b (diff) | |
download | perl-406d5545e79665094180534380eba323110f99bc.tar.gz |
hexfp: Use Perl_fp_class_nzero unconditionally.
Otherwise in platforms with Perl_fp_class_nzero there would be no
return for the x != 0.0 case.
Diffstat (limited to 'numeric.c')
-rw-r--r-- | numeric.c | 10 |
1 files changed, 4 insertions, 6 deletions
@@ -1630,11 +1630,9 @@ Users should just always call C<Perl_signbit()>. int Perl_signbit(NV x) { # ifdef Perl_fp_class_nzero - if (x == 0) - return Perl_fp_class_nzero(x); - /* Try finding the high byte, and assume it's highest - * bit is the sign. This assumption is probably wrong - * somewhere. */ + return Perl_fp_class_nzero(x); + /* Try finding the high byte, and assume it's highest bit + * is the sign. This assumption is probably wrong somewhere. */ # elif defined(USE_LONG_DOUBLE) && LONG_DOUBLEKIND == LONG_DOUBLE_IS_X86_80_BIT_LITTLE_ENDIAN return (((unsigned char *)&x)[9] & 0x80); # elif defined(NV_LITTLE_ENDIAN) @@ -1645,7 +1643,7 @@ Perl_signbit(NV x) { # elif defined(NV_BIG_ENDIAN) return (((unsigned char *)&x)[0] & 0x80); # else - /* This last fallback will fail for the negative zero. */ + /* This last resort fallback is wrong for the negative zero. */ return (x < 0.0) ? 1 : 0; # endif } |