summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2001-07-12 03:27:28 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2001-07-12 03:27:28 +0000
commita86a20aad3dee6ffff452254654a89df75943779 (patch)
tree6ab14e31665a822c5612ed4b3bb392a33eab66a2
parentc89df6bff3e1d35ec00d05ede1265446fbb1d8c0 (diff)
downloadperl-a86a20aad3dee6ffff452254654a89df75943779.tar.gz
Retract #11166 (and #11237).
p4raw-id: //depot/perl@11285
-rw-r--r--dump.c2
-rw-r--r--embed.h4
-rw-r--r--lib/warnings.pm292
-rw-r--r--op.c39
-rw-r--r--op.h1
-rw-r--r--opcode.h6
-rwxr-xr-xopcode.pl6
-rw-r--r--pod/perldiag.pod27
-rw-r--r--pp.sym1
-rw-r--r--pp_proto.h1
-rw-r--r--t/lib/warnings/op32
-rw-r--r--t/lib/warnings/toke22
-rw-r--r--toke.c21
-rw-r--r--warnings.h100
-rw-r--r--warnings.pl7
15 files changed, 252 insertions, 309 deletions
diff --git a/dump.c b/dump.c
index 1ec2a6055a..f23ac7babc 100644
--- a/dump.c
+++ b/dump.c
@@ -519,8 +519,6 @@ Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, OP *o)
else if (o->op_type == OP_CONST) {
if (o->op_private & OPpCONST_BARE)
sv_catpv(tmpsv, ",BARE");
- if (o->op_private & OPpCONST_OCTAL)
- sv_catpv(tmpsv, ",OCTAL");
if (o->op_private & OPpCONST_STRICT)
sv_catpv(tmpsv, ",STRICT");
if (o->op_private & OPpCONST_ARYBASE)
diff --git a/embed.h b/embed.h
index ba67052116..cb9eb6c0fd 100644
--- a/embed.h
+++ b/embed.h
@@ -1213,7 +1213,6 @@
#define ck_match Perl_ck_match
#define ck_method Perl_ck_method
#define ck_null Perl_ck_null
-#define ck_octmode Perl_ck_octmode
#define ck_open Perl_ck_open
#define ck_repeat Perl_ck_repeat
#define ck_require Perl_ck_require
@@ -2714,7 +2713,6 @@
#define ck_match(a) Perl_ck_match(aTHX_ a)
#define ck_method(a) Perl_ck_method(aTHX_ a)
#define ck_null(a) Perl_ck_null(aTHX_ a)
-#define ck_octmode(a) Perl_ck_octmode(aTHX_ a)
#define ck_open(a) Perl_ck_open(aTHX_ a)
#define ck_repeat(a) Perl_ck_repeat(aTHX_ a)
#define ck_require(a) Perl_ck_require(aTHX_ a)
@@ -5270,8 +5268,6 @@
#define ck_method Perl_ck_method
#define Perl_ck_null CPerlObj::Perl_ck_null
#define ck_null Perl_ck_null
-#define Perl_ck_octmode CPerlObj::Perl_ck_octmode
-#define ck_octmode Perl_ck_octmode
#define Perl_ck_open CPerlObj::Perl_ck_open
#define ck_open Perl_ck_open
#define Perl_ck_repeat CPerlObj::Perl_ck_repeat
diff --git a/lib/warnings.pm b/lib/warnings.pm
index e7db400fe8..e3416419fd 100644
--- a/lib/warnings.pm
+++ b/lib/warnings.pm
@@ -130,163 +130,157 @@ use Carp ;
%Offsets = (
'all' => 0,
- 'closure' => 2,
- 'exiting' => 4,
- 'glob' => 6,
- 'io' => 8,
- 'closed' => 10,
- 'exec' => 12,
- 'newline' => 14,
- 'pipe' => 16,
- 'unopened' => 18,
- 'misc' => 20,
- 'numeric' => 22,
- 'octmode' => 24,
- 'chmod' => 26,
- 'mkdir' => 28,
- 'umask' => 30,
- 'once' => 32,
- 'overflow' => 34,
- 'pack' => 36,
- 'portable' => 38,
- 'recursion' => 40,
- 'redefine' => 42,
- 'regexp' => 44,
- 'severe' => 46,
- 'debugging' => 48,
- 'inplace' => 50,
- 'internal' => 52,
- 'malloc' => 54,
- 'signal' => 56,
- 'substr' => 58,
- 'syntax' => 60,
- 'ambiguous' => 62,
- 'bareword' => 64,
- 'deprecated' => 66,
- 'digit' => 68,
- 'parenthesis' => 70,
- 'precedence' => 72,
- 'printf' => 74,
- 'prototype' => 76,
- 'qw' => 78,
- 'reserved' => 80,
- 'semicolon' => 82,
- 'taint' => 84,
- 'uninitialized' => 86,
- 'unpack' => 88,
- 'untie' => 90,
- 'utf8' => 92,
- 'void' => 94,
- 'y2k' => 96,
+ 'chmod' => 2,
+ 'closure' => 4,
+ 'exiting' => 6,
+ 'glob' => 8,
+ 'io' => 10,
+ 'closed' => 12,
+ 'exec' => 14,
+ 'newline' => 16,
+ 'pipe' => 18,
+ 'unopened' => 20,
+ 'misc' => 22,
+ 'numeric' => 24,
+ 'once' => 26,
+ 'overflow' => 28,
+ 'pack' => 30,
+ 'portable' => 32,
+ 'recursion' => 34,
+ 'redefine' => 36,
+ 'regexp' => 38,
+ 'severe' => 40,
+ 'debugging' => 42,
+ 'inplace' => 44,
+ 'internal' => 46,
+ 'malloc' => 48,
+ 'signal' => 50,
+ 'substr' => 52,
+ 'syntax' => 54,
+ 'ambiguous' => 56,
+ 'bareword' => 58,
+ 'deprecated' => 60,
+ 'digit' => 62,
+ 'parenthesis' => 64,
+ 'precedence' => 66,
+ 'printf' => 68,
+ 'prototype' => 70,
+ 'qw' => 72,
+ 'reserved' => 74,
+ 'semicolon' => 76,
+ 'taint' => 78,
+ 'umask' => 80,
+ 'uninitialized' => 82,
+ 'unpack' => 84,
+ 'untie' => 86,
+ 'utf8' => 88,
+ 'void' => 90,
+ 'y2k' => 92,
);
%Bits = (
- 'all' => "\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x01", # [0..48]
- 'ambiguous' => "\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00", # [31]
- 'bareword' => "\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00", # [32]
- 'chmod' => "\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [13]
- 'closed' => "\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [5]
- 'closure' => "\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1]
- 'debugging' => "\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00", # [24]
- 'deprecated' => "\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00", # [33]
- 'digit' => "\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00", # [34]
- 'exec' => "\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6]
- 'exiting' => "\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [2]
- 'glob' => "\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3]
- 'inplace' => "\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00", # [25]
- 'internal' => "\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00", # [26]
- 'io' => "\x00\x55\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4..9]
- 'malloc' => "\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00", # [27]
- 'misc' => "\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10]
- 'mkdir' => "\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [14]
- 'newline' => "\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7]
- 'numeric' => "\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11]
- 'octmode' => "\x00\x00\x00\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [12..15]
- 'once' => "\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00", # [16]
- 'overflow' => "\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00", # [17]
- 'pack' => "\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00", # [18]
- 'parenthesis' => "\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00", # [35]
- 'pipe' => "\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8]
- 'portable' => "\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00", # [19]
- 'precedence' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00", # [36]
- 'printf' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00", # [37]
- 'prototype' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00", # [38]
- 'qw' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00", # [39]
- 'recursion' => "\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00", # [20]
- 'redefine' => "\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00", # [21]
- 'regexp' => "\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00", # [22]
- 'reserved' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00", # [40]
- 'semicolon' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00", # [41]
- 'severe' => "\x00\x00\x00\x00\x00\x40\x55\x00\x00\x00\x00\x00\x00", # [23..27]
- 'signal' => "\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00", # [28]
- 'substr' => "\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00", # [29]
- 'syntax' => "\x00\x00\x00\x00\x00\x00\x00\x50\x55\x55\x05\x00\x00", # [30..41]
- 'taint' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00", # [42]
- 'umask' => "\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [15]
- 'uninitialized' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00", # [43]
- 'unopened' => "\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9]
- 'unpack' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00", # [44]
- 'untie' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00", # [45]
- 'utf8' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00", # [46]
- 'void' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00", # [47]
- 'y2k' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01", # [48]
+ 'all' => "\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x15", # [0..46]
+ 'ambiguous' => "\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00", # [28]
+ 'bareword' => "\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00", # [29]
+ 'chmod' => "\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1]
+ 'closed' => "\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6]
+ 'closure' => "\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [2]
+ 'debugging' => "\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00", # [21]
+ 'deprecated' => "\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00", # [30]
+ 'digit' => "\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00", # [31]
+ 'exec' => "\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7]
+ 'exiting' => "\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3]
+ 'glob' => "\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4]
+ 'inplace' => "\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00", # [22]
+ 'internal' => "\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00", # [23]
+ 'io' => "\x00\x54\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [5..10]
+ 'malloc' => "\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00", # [24]
+ 'misc' => "\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11]
+ 'newline' => "\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8]
+ 'numeric' => "\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00", # [12]
+ 'once' => "\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00", # [13]
+ 'overflow' => "\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00", # [14]
+ 'pack' => "\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00", # [15]
+ 'parenthesis' => "\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00", # [32]
+ 'pipe' => "\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9]
+ 'portable' => "\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00", # [16]
+ 'precedence' => "\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00", # [33]
+ 'printf' => "\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00", # [34]
+ 'prototype' => "\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00", # [35]
+ 'qw' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00", # [36]
+ 'recursion' => "\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00", # [17]
+ 'redefine' => "\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00", # [18]
+ 'regexp' => "\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00", # [19]
+ 'reserved' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00", # [37]
+ 'semicolon' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00", # [38]
+ 'severe' => "\x00\x00\x00\x00\x00\x55\x01\x00\x00\x00\x00\x00", # [20..24]
+ 'signal' => "\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00", # [25]
+ 'substr' => "\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00", # [26]
+ 'syntax' => "\x00\x00\x00\x00\x00\x00\x40\x55\x55\x15\x00\x00", # [27..38]
+ 'taint' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00", # [39]
+ 'umask' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00", # [40]
+ 'uninitialized' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00", # [41]
+ 'unopened' => "\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10]
+ 'unpack' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00", # [42]
+ 'untie' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00", # [43]
+ 'utf8' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01", # [44]
+ 'void' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04", # [45]
+ 'y2k' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10", # [46]
);
%DeadBits = (
- 'all' => "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\x02", # [0..48]
- 'ambiguous' => "\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00", # [31]
- 'bareword' => "\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00", # [32]
- 'chmod' => "\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [13]
- 'closed' => "\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [5]
- 'closure' => "\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1]
- 'debugging' => "\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00", # [24]
- 'deprecated' => "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00", # [33]
- 'digit' => "\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00", # [34]
- 'exec' => "\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6]
- 'exiting' => "\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [2]
- 'glob' => "\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3]
- 'inplace' => "\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00", # [25]
- 'internal' => "\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00", # [26]
- 'io' => "\x00\xaa\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4..9]
- 'malloc' => "\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00", # [27]
- 'misc' => "\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10]
- 'mkdir' => "\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [14]
- 'newline' => "\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7]
- 'numeric' => "\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11]
- 'octmode' => "\x00\x00\x00\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [12..15]
- 'once' => "\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00", # [16]
- 'overflow' => "\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00", # [17]
- 'pack' => "\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00", # [18]
- 'parenthesis' => "\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00", # [35]
- 'pipe' => "\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8]
- 'portable' => "\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00", # [19]
- 'precedence' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00", # [36]
- 'printf' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00", # [37]
- 'prototype' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00", # [38]
- 'qw' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00", # [39]
- 'recursion' => "\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00", # [20]
- 'redefine' => "\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00", # [21]
- 'regexp' => "\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00", # [22]
- 'reserved' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00", # [40]
- 'semicolon' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00", # [41]
- 'severe' => "\x00\x00\x00\x00\x00\x80\xaa\x00\x00\x00\x00\x00\x00", # [23..27]
- 'signal' => "\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00", # [28]
- 'substr' => "\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00", # [29]
- 'syntax' => "\x00\x00\x00\x00\x00\x00\x00\xa0\xaa\xaa\x0a\x00\x00", # [30..41]
- 'taint' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00", # [42]
- 'umask' => "\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [15]
- 'uninitialized' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00", # [43]
- 'unopened' => "\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9]
- 'unpack' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00", # [44]
- 'untie' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00", # [45]
- 'utf8' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00", # [46]
- 'void' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00", # [47]
- 'y2k' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02", # [48]
+ 'all' => "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\x2a", # [0..46]
+ 'ambiguous' => "\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00", # [28]
+ 'bareword' => "\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00", # [29]
+ 'chmod' => "\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1]
+ 'closed' => "\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6]
+ 'closure' => "\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [2]
+ 'debugging' => "\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00", # [21]
+ 'deprecated' => "\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00", # [30]
+ 'digit' => "\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00", # [31]
+ 'exec' => "\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7]
+ 'exiting' => "\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3]
+ 'glob' => "\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4]
+ 'inplace' => "\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00", # [22]
+ 'internal' => "\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00", # [23]
+ 'io' => "\x00\xa8\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [5..10]
+ 'malloc' => "\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00", # [24]
+ 'misc' => "\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11]
+ 'newline' => "\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8]
+ 'numeric' => "\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00", # [12]
+ 'once' => "\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00", # [13]
+ 'overflow' => "\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00", # [14]
+ 'pack' => "\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00", # [15]
+ 'parenthesis' => "\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00", # [32]
+ 'pipe' => "\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9]
+ 'portable' => "\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00", # [16]
+ 'precedence' => "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00", # [33]
+ 'printf' => "\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00", # [34]
+ 'prototype' => "\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00", # [35]
+ 'qw' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00", # [36]
+ 'recursion' => "\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00", # [17]
+ 'redefine' => "\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00", # [18]
+ 'regexp' => "\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00", # [19]
+ 'reserved' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00", # [37]
+ 'semicolon' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00", # [38]
+ 'severe' => "\x00\x00\x00\x00\x00\xaa\x02\x00\x00\x00\x00\x00", # [20..24]
+ 'signal' => "\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00", # [25]
+ 'substr' => "\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00", # [26]
+ 'syntax' => "\x00\x00\x00\x00\x00\x00\x80\xaa\xaa\x2a\x00\x00", # [27..38]
+ 'taint' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00", # [39]
+ 'umask' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00", # [40]
+ 'uninitialized' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00", # [41]
+ 'unopened' => "\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10]
+ 'unpack' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00", # [42]
+ 'untie' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00", # [43]
+ 'utf8' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02", # [44]
+ 'void' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08", # [45]
+ 'y2k' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20", # [46]
);
-$NONE = "\0\0\0\0\0\0\0\0\0\0\0\0\0";
-$LAST_BIT = 98 ;
-$BYTES = 13 ;
+$NONE = "\0\0\0\0\0\0\0\0\0\0\0\0";
+$LAST_BIT = 94 ;
+$BYTES = 12 ;
$All = "" ; vec($All, $Offsets{'all'}, 2) = 3 ;
diff --git a/op.c b/op.c
index c7c53e436f..28c93d8ff4 100644
--- a/op.c
+++ b/op.c
@@ -2326,11 +2326,7 @@ Perl_fold_constants(pTHX_ register OP *o)
SvIV_please(sv);
#endif
}
- o = newSVOP(OP_CONST, 0, sv);
- /* We don't want folded constants to trigger OCTMODE warnings,
- so we cheat a bit and mark them OCTAL. AMS 20010709 */
- o->op_private |= OPpCONST_OCTAL;
- return o;
+ return newSVOP(OP_CONST, 0, sv);
}
nope:
@@ -6132,39 +6128,6 @@ Perl_ck_null(pTHX_ OP *o)
}
OP *
-Perl_ck_octmode(pTHX_ OP *o)
-{
- OP *p;
-
- if ((ckWARN(WARN_OCTMODE)
- /* Add WARN_MKDIR instead of getting rid of WARN_{CHMOD,UMASK}.
- Backwards compatibility and consistency are terrible things.
- AMS 20010705 */
- || (o->op_type == OP_CHMOD && ckWARN(WARN_CHMOD))
- || (o->op_type == OP_UMASK && ckWARN(WARN_UMASK))
- || (o->op_type == OP_MKDIR && ckWARN(WARN_MKDIR)))
- && o->op_flags & OPf_KIDS)
- {
- if (o->op_type == OP_MKDIR)
- p = cLISTOPo->op_last; /* mkdir $foo, 0777 */
- else if (o->op_type == OP_CHMOD)
- p = cLISTOPo->op_first->op_sibling; /* chmod 0777, $foo */
- else
- p = cUNOPo->op_first; /* umask 0222 */
-
- if (p->op_type == OP_CONST && !(p->op_private & OPpCONST_OCTAL)) {
- int mode = SvIV(cSVOPx_sv(p));
-
- Perl_warner(aTHX_ WARN_OCTMODE,
- "Non-octal literal mode (%d) specified", mode);
- Perl_warner(aTHX_ WARN_OCTMODE,
- "\t(Did you mean 0%d instead?)\n", mode);
- }
- }
- return ck_fun(o);
-}
-
-OP *
Perl_ck_open(pTHX_ OP *o)
{
HV *table = GvHV(PL_hintgv);
diff --git a/op.h b/op.h
index 05fe77ef03..2d953581d1 100644
--- a/op.h
+++ b/op.h
@@ -166,7 +166,6 @@ Deprecated. Use C<GIMME_V> instead.
#define OPpTARGET_MY 16 /* Target is PADMY. */
/* Private for OP_CONST */
-#define OPpCONST_OCTAL 4 /* Octal constant. */
#define OPpCONST_STRICT 8 /* bearword subject to strict 'subs' */
#define OPpCONST_ENTERED 16 /* Has been entered as symbol. */
#define OPpCONST_ARYBASE 32 /* Was a $[ translated to constant. */
diff --git a/opcode.h b/opcode.h
index fd12e46afe..28f1345335 100644
--- a/opcode.h
+++ b/opcode.h
@@ -1289,7 +1289,7 @@ EXT OP * (CPERLscope(*PL_check)[]) (pTHX_ OP *op) = {
MEMBER_TO_FPTR(Perl_ck_fun), /* close */
MEMBER_TO_FPTR(Perl_ck_fun), /* pipe_op */
MEMBER_TO_FPTR(Perl_ck_fun), /* fileno */
- MEMBER_TO_FPTR(Perl_ck_octmode), /* umask */
+ MEMBER_TO_FPTR(Perl_ck_fun), /* umask */
MEMBER_TO_FPTR(Perl_ck_fun), /* binmode */
MEMBER_TO_FPTR(Perl_ck_fun), /* tie */
MEMBER_TO_FPTR(Perl_ck_fun), /* untie */
@@ -1361,13 +1361,13 @@ EXT OP * (CPERLscope(*PL_check)[]) (pTHX_ OP *op) = {
MEMBER_TO_FPTR(Perl_ck_fun), /* chown */
MEMBER_TO_FPTR(Perl_ck_fun), /* chroot */
MEMBER_TO_FPTR(Perl_ck_fun), /* unlink */
- MEMBER_TO_FPTR(Perl_ck_octmode), /* chmod */
+ MEMBER_TO_FPTR(Perl_ck_fun), /* chmod */
MEMBER_TO_FPTR(Perl_ck_fun), /* utime */
MEMBER_TO_FPTR(Perl_ck_fun), /* rename */
MEMBER_TO_FPTR(Perl_ck_fun), /* link */
MEMBER_TO_FPTR(Perl_ck_fun), /* symlink */
MEMBER_TO_FPTR(Perl_ck_fun), /* readlink */
- MEMBER_TO_FPTR(Perl_ck_octmode), /* mkdir */
+ MEMBER_TO_FPTR(Perl_ck_fun), /* mkdir */
MEMBER_TO_FPTR(Perl_ck_fun), /* rmdir */
MEMBER_TO_FPTR(Perl_ck_fun), /* open_dir */
MEMBER_TO_FPTR(Perl_ck_fun), /* readdir */
diff --git a/opcode.pl b/opcode.pl
index 942d8d2f6d..4053671733 100755
--- a/opcode.pl
+++ b/opcode.pl
@@ -674,7 +674,7 @@ close close ck_fun is% F?
pipe_op pipe ck_fun is@ F F
fileno fileno ck_fun ist% F
-umask umask ck_octmode ist% S?
+umask umask ck_fun ist% S?
binmode binmode ck_fun s@ F S?
tie tie ck_fun idms@ R S L
@@ -767,13 +767,13 @@ chdir chdir ck_fun isT% S?
chown chown ck_fun imsT@ L
chroot chroot ck_fun isTu% S?
unlink unlink ck_fun imsTu@ L
-chmod chmod ck_octmode imsT@ L
+chmod chmod ck_fun imsT@ L
utime utime ck_fun imsT@ L
rename rename ck_fun isT@ S S
link link ck_fun isT@ S S
symlink symlink ck_fun isT@ S S
readlink readlink ck_fun stu% S?
-mkdir mkdir ck_octmode isT@ S S?
+mkdir mkdir ck_fun isT@ S S?
rmdir rmdir ck_fun isTu% S?
# Directory calls.
diff --git a/pod/perldiag.pod b/pod/perldiag.pod
index 65cde01c35..e39c9187d2 100644
--- a/pod/perldiag.pod
+++ b/pod/perldiag.pod
@@ -1106,6 +1106,16 @@ and so on) and not for Unicode characters, so Perl behaved as if you meant
If you actually want to pack Unicode codepoints, use the C<"U"> format
instead.
+=item chmod() mode argument is missing initial 0
+
+(W chmod) A novice will sometimes say
+
+ chmod 777, $filename
+
+not realizing that 777 will be interpreted as a decimal number,
+equivalent to 01411. Octal constants are introduced with a leading 0 in
+Perl, as in C.
+
=item close() on unopened filehandle %s
(W unopened) You tried to close a filehandle that was never opened.
@@ -1237,12 +1247,6 @@ it compiled correctly and ran its initialization code correctly. It's
traditional to end such a file with a "1;", though any true value would
do. See L<perlfunc/require>.
-=item (Did you mean 0%d instead?)
-
-(W octmode) The mode argument to chmod, mkdir, and umask is usually
-given in octal (octal constants start with a 0, as in C). Did you really
-mean to use a non-octal number?
-
=item (Did you mean &%s instead?)
(W) You probably referred to an imported subroutine &FOO as $FOO or some
@@ -2203,12 +2207,6 @@ not know about the field name. The field names are looked up in the
not recognized. Say C<kill -l> in your shell to see the valid signal
names on your system.
-=item Non-octal literal mode (%d) specified
-
-(W octmode) The mode argument to chmod, mkdir, and umask is usually
-given in octal (octal constants start with a 0, as in C). Did you really
-mean to use a non-octal number?
-
=item Not a CODE reference
(F) Perl was trying to evaluate a reference to a code value (that is, a
@@ -3499,6 +3497,11 @@ certain type. Arrays must be @NAME or C<@{EXPR}>. Hashes must be
%NAME or C<%{EXPR}>. No implicit dereferencing is allowed--use the
{EXPR} forms as an explicit dereference. See L<perlref>.
+=item umask: argument is missing initial 0
+
+(W umask) A umask of 222 is incorrect. It should be 0222, because octal
+literals always start with 0 in Perl, as in C.
+
=item umask not implemented
(F) Your machine doesn't implement the umask function and you tried to
diff --git a/pp.sym b/pp.sym
index 2aa4a9230c..151b7c3983 100644
--- a/pp.sym
+++ b/pp.sym
@@ -26,7 +26,6 @@ Perl_ck_listiob
Perl_ck_match
Perl_ck_method
Perl_ck_null
-Perl_ck_octmode
Perl_ck_open
Perl_ck_repeat
Perl_ck_require
diff --git a/pp_proto.h b/pp_proto.h
index 97ba330bf2..86ab4c2550 100644
--- a/pp_proto.h
+++ b/pp_proto.h
@@ -25,7 +25,6 @@ PERL_CKDEF(Perl_ck_listiob)
PERL_CKDEF(Perl_ck_match)
PERL_CKDEF(Perl_ck_method)
PERL_CKDEF(Perl_ck_null)
-PERL_CKDEF(Perl_ck_octmode)
PERL_CKDEF(Perl_ck_open)
PERL_CKDEF(Perl_ck_repeat)
PERL_CKDEF(Perl_ck_require)
diff --git a/t/lib/warnings/op b/t/lib/warnings/op
index 20185964b6..2c2c3f5113 100644
--- a/t/lib/warnings/op
+++ b/t/lib/warnings/op
@@ -102,11 +102,6 @@
%s() called too early to check prototype [Perl_peep]
fred() ; sub fred ($$) {}
- Non-octal literal mode (%d) specified
- (Did you mean 0%d instead?)
- chmod 777, "foo";
- mkdir "foo", 777;
- umask 222;
Use of "package" with no arguments is deprecated
package;
@@ -936,33 +931,6 @@ Useless use of push with no values at - line 4.
Useless use of unshift with no values at - line 5.
########
# op.c
-use warnings 'chmod' ;
-chmod 777;
-no warnings 'chmod' ;
-chmod 777;
-EXPECT
-Non-octal literal mode (777) specified at - line 3.
- (Did you mean 0777 instead?)
-########
-# op.c
-use warnings 'umask' ;
-umask 222;
-no warnings 'umask' ;
-umask 222;
-EXPECT
-Non-octal literal mode (222) specified at - line 3.
- (Did you mean 0222 instead?)
-########
-# op.c
-use warnings 'mkdir' ;
-mkdir "", 777;
-no warnings 'mkdir' ;
-mkdir "", 777;
-EXPECT
-Non-octal literal mode (777) specified at - line 3.
- (Did you mean 0777 instead?)
-########
-# op.c
use warnings 'deprecated' ;
package;
no warnings 'deprecated' ;
diff --git a/t/lib/warnings/toke b/t/lib/warnings/toke
index 14b745da22..242b0059fb 100644
--- a/t/lib/warnings/toke
+++ b/t/lib/warnings/toke
@@ -46,12 +46,18 @@ toke.c AOK
warn(warn_reserved
$a = abc;
+ chmod() mode argument is missing initial 0
+ chmod 3;
+
Possible attempt to separate words with commas
@a = qw(a, b, c) ;
Possible attempt to put comments in qw() list
@a = qw(a b # c) ;
+ umask: argument is missing initial 0
+ umask 3;
+
%s (...) interpreted as function
print ("")
printf ("")
@@ -256,6 +262,14 @@ EXPECT
Unquoted string "abc" may clash with future reserved word at - line 3.
########
# toke.c
+use warnings 'chmod' ;
+chmod 3;
+no warnings 'chmod' ;
+chmod 3;
+EXPECT
+chmod() mode argument is missing initial 0 at - line 3.
+########
+# toke.c
use warnings 'qw' ;
@a = qw(a, b, c) ;
no warnings 'qw' ;
@@ -272,6 +286,14 @@ EXPECT
Possible attempt to put comments in qw() list at - line 3.
########
# toke.c
+use warnings 'umask' ;
+umask 3;
+no warnings 'umask' ;
+umask 3;
+EXPECT
+umask: argument is missing initial 0 at - line 3.
+########
+# toke.c
use warnings 'syntax' ;
print ("")
EXPECT
diff --git a/toke.c b/toke.c
index abb0c2d7b5..cf219b2eeb 100644
--- a/toke.c
+++ b/toke.c
@@ -4175,6 +4175,12 @@ Perl_yylex(pTHX)
LOP(OP_CRYPT,XTERM);
case KEY_chmod:
+ if (ckWARN(WARN_CHMOD)) {
+ for (d = s; d < PL_bufend && (isSPACE(*d) || *d == '('); d++) ;
+ if (*d != '0' && isDIGIT(*d))
+ Perl_warner(aTHX_ WARN_CHMOD,
+ "chmod() mode argument is missing initial 0");
+ }
LOP(OP_CHMOD,XTERM);
case KEY_chown:
@@ -5032,6 +5038,12 @@ Perl_yylex(pTHX)
LOP(OP_UTIME,XTERM);
case KEY_umask:
+ if (ckWARN(WARN_UMASK)) {
+ for (d = s; d < PL_bufend && (isSPACE(*d) || *d == '('); d++) ;
+ if (*d != '0' && isDIGIT(*d))
+ Perl_warner(aTHX_ WARN_UMASK,
+ "umask: argument is missing initial 0");
+ }
UNI(OP_UMASK);
case KEY_unshift:
@@ -6909,8 +6921,7 @@ Perl_scan_num(pTHX_ char *start, YYSTYPE* lvalp)
register char *e; /* end of temp buffer */
NV nv; /* number read, as a double */
SV *sv = Nullsv; /* place to put the converted number */
- bool floatit, /* boolean: int or float? */
- octal = 0; /* Is this an octal number? */
+ bool floatit; /* boolean: int or float? */
char *lastub = 0; /* position of last underbar */
static char number_too_long[] = "Number too long";
@@ -6964,7 +6975,6 @@ Perl_scan_num(pTHX_ char *start, YYSTYPE* lvalp)
/* so it must be octal */
else {
shift = 3;
- octal = 1;
s++;
}
@@ -7318,11 +7328,8 @@ vstring:
/* make the op for the constant and return */
- if (sv) {
+ if (sv)
lvalp->opval = newSVOP(OP_CONST, 0, sv);
- if (octal)
- ((SVOP *)lvalp->opval)->op_private |= OPpCONST_OCTAL;
- }
else
lvalp->opval = Nullop;
diff --git a/warnings.h b/warnings.h
index f6dc1625a9..f6814e78c4 100644
--- a/warnings.h
+++ b/warnings.h
@@ -23,58 +23,56 @@
#define specialWARN(x) ((x) == pWARN_STD || (x) == pWARN_ALL || \
(x) == pWARN_NONE)
#define WARN_ALL 0
-#define WARN_CLOSURE 1
-#define WARN_EXITING 2
-#define WARN_GLOB 3
-#define WARN_IO 4
-#define WARN_CLOSED 5
-#define WARN_EXEC 6
-#define WARN_NEWLINE 7
-#define WARN_PIPE 8
-#define WARN_UNOPENED 9
-#define WARN_MISC 10
-#define WARN_NUMERIC 11
-#define WARN_OCTMODE 12
-#define WARN_CHMOD 13
-#define WARN_MKDIR 14
-#define WARN_UMASK 15
-#define WARN_ONCE 16
-#define WARN_OVERFLOW 17
-#define WARN_PACK 18
-#define WARN_PORTABLE 19
-#define WARN_RECURSION 20
-#define WARN_REDEFINE 21
-#define WARN_REGEXP 22
-#define WARN_SEVERE 23
-#define WARN_DEBUGGING 24
-#define WARN_INPLACE 25
-#define WARN_INTERNAL 26
-#define WARN_MALLOC 27
-#define WARN_SIGNAL 28
-#define WARN_SUBSTR 29
-#define WARN_SYNTAX 30
-#define WARN_AMBIGUOUS 31
-#define WARN_BAREWORD 32
-#define WARN_DEPRECATED 33
-#define WARN_DIGIT 34
-#define WARN_PARENTHESIS 35
-#define WARN_PRECEDENCE 36
-#define WARN_PRINTF 37
-#define WARN_PROTOTYPE 38
-#define WARN_QW 39
-#define WARN_RESERVED 40
-#define WARN_SEMICOLON 41
-#define WARN_TAINT 42
-#define WARN_UNINITIALIZED 43
-#define WARN_UNPACK 44
-#define WARN_UNTIE 45
-#define WARN_UTF8 46
-#define WARN_VOID 47
-#define WARN_Y2K 48
+#define WARN_CHMOD 1
+#define WARN_CLOSURE 2
+#define WARN_EXITING 3
+#define WARN_GLOB 4
+#define WARN_IO 5
+#define WARN_CLOSED 6
+#define WARN_EXEC 7
+#define WARN_NEWLINE 8
+#define WARN_PIPE 9
+#define WARN_UNOPENED 10
+#define WARN_MISC 11
+#define WARN_NUMERIC 12
+#define WARN_ONCE 13
+#define WARN_OVERFLOW 14
+#define WARN_PACK 15
+#define WARN_PORTABLE 16
+#define WARN_RECURSION 17
+#define WARN_REDEFINE 18
+#define WARN_REGEXP 19
+#define WARN_SEVERE 20
+#define WARN_DEBUGGING 21
+#define WARN_INPLACE 22
+#define WARN_INTERNAL 23
+#define WARN_MALLOC 24
+#define WARN_SIGNAL 25
+#define WARN_SUBSTR 26
+#define WARN_SYNTAX 27
+#define WARN_AMBIGUOUS 28
+#define WARN_BAREWORD 29
+#define WARN_DEPRECATED 30
+#define WARN_DIGIT 31
+#define WARN_PARENTHESIS 32
+#define WARN_PRECEDENCE 33
+#define WARN_PRINTF 34
+#define WARN_PROTOTYPE 35
+#define WARN_QW 36
+#define WARN_RESERVED 37
+#define WARN_SEMICOLON 38
+#define WARN_TAINT 39
+#define WARN_UMASK 40
+#define WARN_UNINITIALIZED 41
+#define WARN_UNPACK 42
+#define WARN_UNTIE 43
+#define WARN_UTF8 44
+#define WARN_VOID 45
+#define WARN_Y2K 46
-#define WARNsize 13
-#define WARN_ALLstring "\125\125\125\125\125\125\125\125\125\125\125\125\125"
-#define WARN_NONEstring "\0\0\0\0\0\0\0\0\0\0\0\0\0"
+#define WARNsize 12
+#define WARN_ALLstring "\125\125\125\125\125\125\125\125\125\125\125\125"
+#define WARN_NONEstring "\0\0\0\0\0\0\0\0\0\0\0\0"
#define isLEXWARN_on (PL_curcop->cop_warnings != pWARN_STD)
#define isLEXWARN_off (PL_curcop->cop_warnings == pWARN_STD)
diff --git a/warnings.pl b/warnings.pl
index c7b28e976b..138b1db5af 100644
--- a/warnings.pl
+++ b/warnings.pl
@@ -37,11 +37,6 @@ my $tree = {
'debugging' => DEFAULT_ON,
'malloc' => DEFAULT_ON,
},
- 'octmode' => {
- 'chmod' => DEFAULT_OFF,
- 'mkdir' => DEFAULT_OFF,
- 'umask' => DEFAULT_OFF,
- },
'void' => DEFAULT_OFF,
'recursion' => DEFAULT_OFF,
'redefine' => DEFAULT_OFF,
@@ -52,6 +47,8 @@ my $tree = {
'regexp' => DEFAULT_OFF,
'glob' => DEFAULT_OFF,
'y2k' => DEFAULT_OFF,
+ 'chmod' => DEFAULT_OFF,
+ 'umask' => DEFAULT_OFF,
'untie' => DEFAULT_OFF,
'substr' => DEFAULT_OFF,
'taint' => DEFAULT_OFF,