In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/6b2c7479d6d33249c2385d8a36d8ee9e61e1a519?hp=3816c65ffd171a2958146bc01b5baa54793cd5fc>

- Log -----------------------------------------------------------------
commit 6b2c7479d6d33249c2385d8a36d8ee9e61e1a519
Author: Niko Tyni <[email protected]>
Date:   Sat Nov 19 09:45:45 2016 +0200

    Configure: also zero out high bytes of 80-bit ldnan
    
    These are currently zero anyway, but things are probably not guaranteed
    to stay so.

M       Configure

commit dd6885360b15e763e0706dc28555eea328de432d
Author: Niko Tyni <[email protected]>
Date:   Fri Nov 18 18:36:34 2016 +0200

    Configure: fix garbage filtering with 80-bit long doubles
    
    The test had several problems that resulted in the excess
    bytes not getting zeroed out. This caused random contents in
    $Config{longdblinfbytes}, observed on Debian with GCC 6.2.0 (but not
    5.4.1).
    
    Bug-Debian: https://bugs.debian.org/844752

M       Configure
-----------------------------------------------------------------------

Summary of changes:
 Configure | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/Configure b/Configure
index 6a3d617..845fc43 100755
--- a/Configure
+++ b/Configure
@@ -20661,8 +20661,8 @@ $cat >try.c <<EOP
 #define DOUBLESIZE $doublesize
 #$d_longdbl HAS_LONG_DOUBLE
 #ifdef HAS_LONG_DOUBLE
-#define LONGDBLSIZE $longdblsize
-#define LONGDBLKIND $longdblkind
+#define LONG_DOUBLESIZE $longdblsize
+#define LONG_DOUBLEKIND $longdblkind
 #endif
 #$i_math I_MATH
 #ifdef I_MATH
@@ -20699,16 +20699,15 @@ int main(int argc, char *argv[]) {
 #ifdef HAS_LONG_DOUBLE
    long double ldinf = (long double)exp(1e9);
    long double ldnan = (long double)sqrt(-1.0);
-#endif
-  if (argc == 2) {
-    switch (argv[1][0]) {
-    case '1': bytes(&dinf, sizeof(dinf)); break;
-    case '2': bytes(&dnan, sizeof(dnan)); break;
-#ifdef HAS_LONG_DOUBLE
 # if LONG_DOUBLEKIND == 3 || LONG_DOUBLEKIND == 4
 /* the 80-bit long doubles might have garbage in their excess bytes */
     memset((char *)&ldinf + 10, '\0', LONG_DOUBLESIZE - 10);
+    memset((char *)&ldnan + 10, '\0', LONG_DOUBLESIZE - 10);
 # endif
+  if (argc == 2) {
+    switch (argv[1][0]) {
+    case '1': bytes(&dinf, sizeof(dinf)); break;
+    case '2': bytes(&dnan, sizeof(dnan)); break;
     case '3': bytes(&ldinf, sizeof(ldinf)); break;
     case '4': bytes(&ldnan, sizeof(ldnan)); break;
 #endif

--
Perl5 Master Repository

Reply via email to