This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[perl #125924] allow op/infnan.t to pass on Win32 gcc
authorTony Cook <tony@develop-help.com>
Tue, 1 Sep 2015 00:41:40 +0000 (10:41 +1000)
committerTony Cook <tony@develop-help.com>
Thu, 3 Sep 2015 01:04:00 +0000 (11:04 +1000)
win32/config_sh.PL

index 98255a8..74e5f0d 100644 (file)
@@ -198,6 +198,19 @@ else {
     $opt{uvxformat} = '"lx"';
 }
 
+unless ($opt{cc} =~ /\bcl/) {
+    if ($opt{WIN64} eq 'define') {
+        $opt{longdblsize} = 16;
+        $opt{longdblinfbytes} = '0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00';
+        $opt{longdblnanbytes} = '0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00';
+    }
+    else {
+        $opt{longdblsize} = 12;
+        $opt{longdblinfbytes} = '0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x7f, 0x00, 0x00';
+        $opt{longdblnanbytes} = '0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x00, 0x00';
+    }
+}
+
 # set long double options
 if ($opt{uselongdouble} eq 'define') {
     $opt{d_Gconvert} = 'sprintf((b),"%.*""Lg",(n),(x))';
@@ -214,14 +227,7 @@ if ($opt{uselongdouble} eq 'define') {
     $opt{d_PRIfldbl} = 'define';
     $opt{d_PRIgldbl} = 'define';
     $opt{d_SCNfldbl} = 'define';
-    if ($opt{WIN64} eq 'define') {
-        $opt{longdblsize} = 16;
-        $opt{nvsize} = 16;
-    }
-    else {
-        $opt{longdblsize} = 12;
-        $opt{nvsize} = 12;
-    }
+    $opt{nvsize} = $opt{longdblsize};
     $opt{nvtype} = 'long double';
     $opt{nv_overflows_integers_at} = '256.0*256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0*2.0*2.0*2.0';
     $opt{nvEUformat} = '"LE"';
@@ -230,6 +236,8 @@ if ($opt{uselongdouble} eq 'define') {
     $opt{nveformat} = '"Le"';
     $opt{nvfformat} = '"Lf"';
     $opt{nvgformat} = '"Lg"';
+    $opt{longdblkind} = 3;
+    $opt{longdblmantbits} = 64;
 }
 else {
     $opt{d_Gconvert} = 'sprintf((b),"%.*g",(n),(x))';
@@ -246,7 +254,6 @@ else {
     $opt{d_PRIfldbl} = 'undef';
     $opt{d_PRIgldbl} = 'undef';
     $opt{d_SCNfldbl} = 'undef';
-    $opt{longdblsize} = 8;
     $opt{nvsize} = 8;
     $opt{nvtype} = 'double';
     $opt{nv_overflows_integers_at} = '256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0';