diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 2015-11-30 07:27:47 -0500 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2015-12-01 09:07:14 -0500 |
commit | 50006c82290de7fc1fd3bbb5e4d893723659dd82 (patch) | |
tree | 3462cd020c71aa554644d9040dd2a3ecb51b7a59 /sv.c | |
parent | 7d9942e329fa0ad09f22c706668103b6a0b73c7c (diff) | |
download | perl-50006c82290de7fc1fd3bbb5e4d893723659dd82.tar.gz |
hexfp: signbit() works on NVs (nv), not on long doubles (fv).
The nv value should be a valid version of the fv value.
Why the fv is a long double, not a NV, is a long (haha) story.
Short version: the printf code expects to be able to work with long
doubles, if long doubles are available, even without -Duselongdouble.
The problem became obvious in VMS which has true 128-bit long
(little-endian) doubles, and trying the signbit() on those did
not work.
Diffstat (limited to 'sv.c')
-rw-r--r-- | sv.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -12366,7 +12366,7 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN p #endif if (fv < 0 - || Perl_signbit(fv) + || Perl_signbit(nv) ) *p++ = '-'; else if (plus) |