From 47dc2f5e091932a1587af174e3cfe6ecaceb9093 Mon Sep 17 00:00:00 2001 From: Tony Cook Date: Tue, 30 Mar 2021 11:22:54 +1100 Subject: [PATCH] perldelta for 3472c1f6c5f --- pod/perldelta.pod | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 1f53eee14219..c668f69e8d39 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -348,7 +348,29 @@ well. =item * -XXX +Corrected handling of double and long double parameters for perl's +implementation of formatted output for C<-Dusequadmath> builds. + +This applies to PerlIO_printf(), croak(), warn(), sv_catpvf() and +their variants. + +Previously in C builds, code like: + + PerlIO_printf(PerlIO_stderr(), "%g", somedouble); + +or + + PerlIO_printf(PerlIO_stderr(), "%Lg", somelongdouble); + +would erroneously throw an exception "panic: quadmath invalid format +...", since the code added for quadmath builds assumed Cs were the +only floating point format passed into these functions. + +This code would also process the standard C long double specifier C +as if it expected an C (C<__float128> for quadmath builds), +resulting in undefined behaviour. + +These functions now correctly accept doubles, long doubles and NVs. =back