summaryrefslogtreecommitdiff
path: root/util.c
diff options
context:
space:
mode:
authorPaul Marquess <paul.marquess@btinternet.com>1999-06-27 00:19:52 +0100
committerGurusamy Sarathy <gsar@cpan.org>1999-07-07 09:45:43 +0000
commit0453d815b8a74697ff1e5451c27aba2fe537b8e0 (patch)
treeb6275867deb61ba13fb0e665d516f115dd9f1d69 /util.c
parent69e210baba6414aba2758bc791a6dc3e9e167d9d (diff)
downloadperl-0453d815b8a74697ff1e5451c27aba2fe537b8e0.tar.gz
lexical warnings update (warning.t fails one test
due to leaked scalar, investigation pending) Message-ID: <5104D4DBC598D211B5FE0000F8FE7EB29C6C8E@mbtlipnt02.btlabs.bt.co.uk> Subject: [PATCH 5.005_57] Lexical Warnings - mandatory warning are now default warnings p4raw-id: //depot/perl@3640
Diffstat (limited to 'util.c')
-rw-r--r--util.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/util.c b/util.c
index 242a30889d..5f867aedfe 100644
--- a/util.c
+++ b/util.c
@@ -2752,9 +2752,10 @@ Perl_scan_bin(pTHX_ char *start, I32 len, I32 *retlen)
register UV retval = 0;
bool overflowed = FALSE;
while (len && *s >= '0' && *s <= '1') {
+ dTHR;
register UV n = retval << 1;
- if (!overflowed && (n >> 1) != retval) {
- Perl_warn(aTHX_ "Integer overflow in binary number");
+ if (!overflowed && (n >> 1) != retval && ckWARN_d(WARN_UNSAFE)) {
+ Perl_warner(aTHX_ WARN_UNSAFE, "Integer overflow in binary number");
overflowed = TRUE;
}
retval = n | (*s++ - '0');
@@ -2776,9 +2777,10 @@ Perl_scan_oct(pTHX_ char *start, I32 len, I32 *retlen)
bool overflowed = FALSE;
while (len && *s >= '0' && *s <= '7') {
+ dTHR;
register UV n = retval << 3;
- if (!overflowed && (n >> 3) != retval) {
- Perl_warn(aTHX_ "Integer overflow in octal number");
+ if (!overflowed && (n >> 3) != retval && ckWARN_d(WARN_UNSAFE)) {
+ Perl_warner(aTHX_ WARN_UNSAFE, "Integer overflow in octal number");
overflowed = TRUE;
}
retval = n | (*s++ - '0');
@@ -2816,9 +2818,12 @@ Perl_scan_hex(pTHX_ char *start, I32 len, I32 *retlen)
}
}
n = retval << 4;
- if (!overflowed && (n >> 4) != retval) {
- Perl_warn(aTHX_ "Integer overflow in hex number");
- overflowed = TRUE;
+ {
+ dTHR;
+ if (!overflowed && (n >> 4) != retval && ckWARN_d(WARN_UNSAFE)) {
+ Perl_warner(aTHX_ WARN_UNSAFE, "Integer overflow in hex number");
+ overflowed = TRUE;
+ }
}
retval = n | ((tmp - PL_hexdigit) & 15);
}