In perl.git, the branch blead has been updated

<https://perl5.git.perl.org/perl.git/commitdiff/32ce30d709666239149a4f04ddcfbdec00005288?hp=814eedc877a5aa1dbba0047735733e9491aa94a4>

- Log -----------------------------------------------------------------
commit 32ce30d709666239149a4f04ddcfbdec00005288
Author: Tony Cook <t...@develop-help.com>
Date:   Tue Feb 20 16:18:05 2018 +1100

    (perl #132870) workaround VC2017 compiler bug
    
    For non-debug builds MSVC could read small integers like 1 as -255.
    
    It's possible it was confused by the AIX compiler bug workaround.
    
    This change needs no further tests, the integer.t fails without
    this workaround.

-----------------------------------------------------------------------

Summary of changes:
 dist/Storable/Storable.xs | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/dist/Storable/Storable.xs b/dist/Storable/Storable.xs
index df0c433b0e..45af7be210 100644
--- a/dist/Storable/Storable.xs
+++ b/dist/Storable/Storable.xs
@@ -6106,14 +6106,20 @@ static SV *retrieve_byte(pTHX_ stcxt_t *cxt, const char 
*cname)
     SV *sv;
     HV *stash;
     int siv;
+#ifndef _MSC_VER
     signed char tmp;   /* Workaround for AIX cc bug --H.Merijn Brand */
+#endif
 
     TRACEME(("retrieve_byte (#%d)", (int)cxt->tagnum));
 
     GETMARK(siv);
     TRACEME(("small integer read as %d", (unsigned char) siv));
+#ifdef _MSC_VER
+    sv = newSViv(siv - 128);
+#else
     tmp = (unsigned char) siv - 128;
     sv = newSViv(tmp);
+#endif
     stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
     SEEN_NN(sv, stash, 0);     /* Associate this new scalar with tag "tagnum" 
*/
 

-- 
Perl5 Master Repository

Reply via email to