@INC = '../lib';
}
use warnings;
+# %Config is needed to obtain archname for VAX (since @INC is now insufficient)
+use Config;
+
+# strictness
+my @tests = ();
+my ($i, $template, $data, $result, $comment, $w, $x, $evalData, $n, $p);
while (<DATA>) {
s/^\s*>//; s/<\s*$//;
}
};
+my $Is_VMS_VAX = 0;
+# The redundant $^O check might help non VMS platforms avoid %Config load
+if ($^O eq 'VMS' &&
+ defined($Config{'archname'}) && $Config{'archname'} eq 'VMS_VAX') {
+ $Is_VMS_VAX = 1;
+}
+
for ($i = 1; @tests; $i++) {
($template, $data, $result, $comment) = @{shift @tests};
if ($^O eq 'os390' || $^O eq 's390') { # non-IEEE (s390 is UTS)
$data =~ s/([eE])\-101$/${1}-56/; # larger exponents
$result =~ s/([eE])\-102$/${1}-57/; # " "
}
+ if ($Is_VMS_VAX) { # VAX DEC C 5.3 at least since there is no
+ # ccflags =~ /float=ieee/ on VAX.
+ # AXP is unaffected whether or not it's using ieee.
+ $data =~ s/([eE])96$/${1}26/; # smaller exponents
+ $result =~ s/([eE]\+)102$/${1}32/; # " "
+ $data =~ s/([eE])\-101$/${1}-24/; # larger exponents
+ $result =~ s/([eE])\-102$/${1}-25/; # " "
+ }
$evalData = eval $data;
$w = undef;
$x = sprintf(">$template<",
>%L< >''< >%L INVALID<
>%M< >''< >%M INVALID<
>%N< >''< >%N INVALID<
->%O< >2**32-1< >37777777777< >Synonum for %lo<
+>%O< >2**32-1< >37777777777< >Synonym for %lo<
>%P< >''< >%P INVALID<
>%Q< >''< >%Q INVALID<
>%R< >''< >%R INVALID<
>%S< >''< >%S INVALID<
>%T< >''< >%T INVALID<
->%U< >2**32-1< >4294967295< >Synonum for %lu<
+>%U< >2**32-1< >4294967295< >Synonym for %lu<
>%V< >''< >%V INVALID<
>%W< >''< >%W INVALID<
>%X< >2**32-1< >FFFFFFFF< >Like %x, but with u/c letters<
>%o< >2**32-1< >37777777777<
>%+o< >2**32-1< >37777777777<
>%#o< >2**32-1< >037777777777<
+>%o< >642< >1202< >check smaller octals across platforms<
+>%+o< >642< >1202<
+>%#o< >642< >01202<
>%d< >$p=sprintf('%p',$p);$p=~/^[0-9a-f]+$/< >1< >Coarse hack: hex from %p?<
>%#p< >''< >%#p INVALID<
>%q< >''< >%q INVALID<