summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2001-03-16 14:10:12 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2001-03-16 14:10:12 +0000
commit8ce34d6cde97f1991e183842054670f0539d85d3 (patch)
treec9ce92155209641f6e123bd1ce47e042e22fccff /ext
parent7a57cd469db83831120babccaac56d60dcf9c0d3 (diff)
downloadperl-8ce34d6cde97f1991e183842054670f0539d85d3.tar.gz
Re-apply #9024 as the Storable 1.0.11 (#9069) overwrote
a change needed to work around an AIX compiler bug. p4raw-id: //depot/perl@9179
Diffstat (limited to 'ext')
-rw-r--r--ext/Storable/Storable.xs8
1 files changed, 6 insertions, 2 deletions
diff --git a/ext/Storable/Storable.xs b/ext/Storable/Storable.xs
index 74fb5a0c9f..647673e86e 100644
--- a/ext/Storable/Storable.xs
+++ b/ext/Storable/Storable.xs
@@ -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;