summaryrefslogtreecommitdiff
path: root/op.c
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>2000-03-19 03:38:10 +0000
committerGurusamy Sarathy <gsar@cpan.org>2000-03-19 03:38:10 +0000
commitddda08b7fcc11fa20ea3d0512758902b8d79862c (patch)
treeb8153ba75433c3e1d6796b75ac5bbd8c894c51fc /op.c
parentc7d6bfb246054926d9f90d7da2845febddfc90b7 (diff)
downloadperl-ddda08b7fcc11fa20ea3d0512758902b8d79862c.tar.gz
warn about CHECK and INIT blocks encountered at run time
p4raw-id: //depot/perl@5813
Diffstat (limited to 'op.c')
-rw-r--r--op.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/op.c b/op.c
index 35fa3f5248..d162595ee2 100644
--- a/op.c
+++ b/op.c
@@ -4655,6 +4655,8 @@ Perl_newATTRSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block)
if (!PL_checkav)
PL_checkav = newAV();
DEBUG_x( dump_sub(gv) );
+ if (PL_main_start && ckWARN(WARN_VOID))
+ Perl_warner(aTHX_ WARN_VOID, "Too late to run CHECK block");
av_unshift(PL_checkav, 1);
av_store(PL_checkav, 0, SvREFCNT_inc(cv));
GvCV(gv) = 0;
@@ -4663,6 +4665,8 @@ Perl_newATTRSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block)
if (!PL_initav)
PL_initav = newAV();
DEBUG_x( dump_sub(gv) );
+ if (PL_main_start && ckWARN(WARN_VOID))
+ Perl_warner(aTHX_ WARN_VOID, "Too late to run INIT block");
av_push(PL_initav, SvREFCNT_inc(cv));
GvCV(gv) = 0;
}
@@ -4803,6 +4807,8 @@ Perl_newXS(pTHX_ char *name, XSUBADDR_t subaddr, char *filename)
else if (strEQ(s, "CHECK")) {
if (!PL_checkav)
PL_checkav = newAV();
+ if (PL_main_start && ckWARN(WARN_VOID))
+ Perl_warner(aTHX_ WARN_VOID, "Too late to run CHECK block");
av_unshift(PL_checkav, 1);
av_store(PL_checkav, 0, SvREFCNT_inc(cv));
GvCV(gv) = 0;
@@ -4810,6 +4816,8 @@ Perl_newXS(pTHX_ char *name, XSUBADDR_t subaddr, char *filename)
else if (strEQ(s, "INIT")) {
if (!PL_initav)
PL_initav = newAV();
+ if (PL_main_start && ckWARN(WARN_VOID))
+ Perl_warner(aTHX_ WARN_VOID, "Too late to run INIT block");
av_push(PL_initav, SvREFCNT_inc(cv));
GvCV(gv) = 0;
}