Branch: refs/heads/blead
Home: https://github.com/Perl/perl5
Commit: 3472c1f6c5f15cb5047171d5a70ef37eccb023ab
https://github.com/Perl/perl5/commit/3472c1f6c5f15cb5047171d5a70ef37eccb023ab
Author: Tony Cook <[email protected]>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M ext/XS-APItest/APItest.pm
M ext/XS-APItest/APItest.xs
M ext/XS-APItest/t/printf.t
M sv.c
Log Message:
-----------
quadmath: handle long doubles supplied via va_args in sv_vcatpvfn_flags()
All of perl's printf() style processing meets up in sv_vcatpvfn_flags()
which had three problems when dealing with long double parameters.
1) both the long double (L and q) and __float128 flags (Q) were
converted to the internal long double flag
2) the internal long double flag was then always treated as a __float128
parameter.
3) the non-Q format string was then passed to my_snprintf(), which
throws an exception on non-Q floating point formats, which meant that
C/XS code printing doubles or long doubles in a quadmath built would
throw an exception.