diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 1999-08-01 22:22:51 +0000 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 1999-08-01 22:22:51 +0000 |
commit | cf2093f6405d08be483e037b6052608c46952a75 (patch) | |
tree | a2572a825ae30eabcd1fee0cac65751bef6a4d05 /op.c | |
parent | ad7e816fc202b9506cd8e0633196331ccf37f264 (diff) | |
download | perl-cf2093f6405d08be483e037b6052608c46952a75.tar.gz |
64-bit work. Now 32-bit platforms get a 100% make test
with -Duse64bits (using long long).
Tested in Solaris 2.6 sparc RH Linux 6.0 x86
(and Digital IX 4.0D, to get a true 64-bit opinion). Now e.g.
'print unpack "q", pack "q", 12345678901'
should work on such 32-bit platforms.
Still a lot of printf()s behind -D which wrongly assume
that %ld/%lx and (long) are a good combination.
Introducing a slew of new macros intended to be used in printf()
format strings: e. g. PERL_PRId64 is the string to be used
when printing an IV, printf("%" PERL_PRId64 "\n", iv).
The PRI... naming follows the C9X naming of <inttypes.h> macros.
p4raw-id: //depot/cfgperl@3861
Diffstat (limited to 'op.c')
-rw-r--r-- | op.c | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -4799,9 +4799,15 @@ Perl_ck_fun(pTHX_ OP *o) OP *newop = newAVREF(newGVOP(OP_GV, 0, gv_fetchpv(name, TRUE, SVt_PVAV) )); if (ckWARN(WARN_SYNTAX)) +#ifdef IV_IS_QUAD + Perl_warner(aTHX_ WARN_SYNTAX, + "Array @%s missing the @ in argument %" PERL_PRId64 " of %s()", + name, (IV)numargs, PL_op_desc[type]); +#else Perl_warner(aTHX_ WARN_SYNTAX, "Array @%s missing the @ in argument %ld of %s()", name, (long)numargs, PL_op_desc[type]); +#endif op_free(kid); kid = newop; kid->op_sibling = sibl; @@ -4819,9 +4825,15 @@ Perl_ck_fun(pTHX_ OP *o) OP *newop = newHVREF(newGVOP(OP_GV, 0, gv_fetchpv(name, TRUE, SVt_PVHV) )); if (ckWARN(WARN_SYNTAX)) +#ifdef IV_IS_QUAD + Perl_warner(aTHX_ WARN_SYNTAX, + "Hash %%%s missing the %% in argument %" PERL_PRId64 " of %s()", + name, (IV)numargs, PL_op_desc[type]); +#else Perl_warner(aTHX_ WARN_SYNTAX, "Hash %%%s missing the %% in argument %ld of %s()", name, (long)numargs, PL_op_desc[type]); +#endif op_free(kid); kid = newop; kid->op_sibling = sibl; |