summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAchim Bohnet <ach@mpe.mpg.de>1999-01-20 21:25:53 +0100
committerJarkko Hietaniemi <jhi@iki.fi>1999-01-21 11:35:34 +0000
commit9d645a59ed905dd3060090ae212684db91655931 (patch)
tree8e3bdd9c532d026e345eb2d9d9c43a1d7532da4d
parentb91c086317cf43911abff2cceb5a395352adb185 (diff)
downloadperl-9d645a59ed905dd3060090ae212684db91655931.tar.gz
Not OK: perl 5.00503 +MAINT_TRIAL_3 on alpha-dec_osf 4.0 (UNINSTALLED)
Message-Id: <199901201925.UAA16940@o06.xray.mpe.mpg.de> p4raw-id: //depot/cfgperl@2656
-rw-r--r--pp.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/pp.c b/pp.c
index 84ee4f4fca..b378d7d21c 100644
--- a/pp.c
+++ b/pp.c
@@ -3594,6 +3594,17 @@ PP(pp_unpack)
Copy(s, &auint, 1, unsigned int);
s += sizeof(unsigned int);
sv = NEWSV(41, 0);
+#ifdef __osf__
+ /* Without the dummy below unpack("I", pack("I",0xFFFFFFFF))
+ * returns 1.84467440737096e+19 instead of 0xFFFFFFFF for
+ * DEC C V5.8-009 on Digital UNIX V4.0 (Rev. 1091) (aka V4.0D)
+ * with optimization turned on.
+ * (DEC C V5.2-040 on Digital UNIX V4.0 (Rev. 564) (aka V4.0B)
+ * does not have this problem even with -O4)
+ */
+ (auint) ?
+ sv_setuv(sv, (UV)auint) :
+#endif
sv_setuv(sv, (UV)auint);
PUSHs(sv_2mortal(sv));
}