Re-apply #9024 as the Storable 1.0.11 (#9069) overwrote
Jarkko Hietaniemi [Fri, 16 Mar 2001 14:10:12 +0000 (14:10 +0000)]
a change needed to work around an AIX compiler bug.

p4raw-id: //depot/perl@9179

ext/Storable/Storable.xs

index 74fb5a0..647673e 100644 (file)
@@ -4006,15 +4006,19 @@ static SV *retrieve_byte(stcxt_t *cxt, char *cname)
 {
        SV *sv;
        int siv;
+       signed char tmp; /* must use temp var to work around
+                           an AIX compiler bug --H.Merijn Brand */
 
        TRACEME(("retrieve_byte (#%d)", cxt->tagnum));
 
        GETMARK(siv);
        TRACEME(("small integer read as %d", (unsigned char) siv));
-       sv = newSViv((unsigned char) siv - 128);
+       tmp = ((unsigned char)siv) - 128;
+       sv = newSViv (tmp);
+
        SEEN(sv, cname);        /* Associate this new scalar with tag "tagnum" */
 
-       TRACEME(("byte %d", (unsigned char) siv - 128));
+       TRACEME(("byte %d", tmp));
        TRACEME(("ok (retrieve_byte at 0x%"UVxf")", PTR2UV(sv)));
 
        return sv;