summaryrefslogtreecommitdiff
path: root/op.c
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>1998-03-05 22:55:53 +0000
committerGurusamy Sarathy <gsar@cpan.org>1998-03-05 22:55:53 +0000
commit888da360572857d466db3c37a59308523ea41a9a (patch)
treed5dba171bebd8e54ee6b148b8624c6bc8f5a1397 /op.c
parent9c82454c97e6b03ea96c9a17bf8b898d470e0064 (diff)
parent2779dcf1a3ceec167d36a36fc44de44737edcc4c (diff)
downloadperl-888da360572857d466db3c37a59308523ea41a9a.tar.gz
[win32] integrate mainline
p4raw-id: //depot/win32/perl@789
Diffstat (limited to 'op.c')
-rw-r--r--op.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/op.c b/op.c
index 925743495a..11c17d7b9a 100644
--- a/op.c
+++ b/op.c
@@ -3333,7 +3333,10 @@ newSUB(I32 floor, OP *o, OP *proto, OP *block)
if (curstack == sortstack && sortcop == CvSTART(cv))
croak("Can't redefine active sort subroutine %s", name);
const_sv = cv_const_sv(cv);
- if (const_sv || dowarn) {
+ if (const_sv || dowarn && !(CvGV(cv) && GvSTASH(CvGV(cv))
+ && HvNAME(GvSTASH(CvGV(cv)))
+ && strEQ(HvNAME(GvSTASH(CvGV(cv))),
+ "autouse"))) {
line_t oldline = curcop->cop_line;
curcop->cop_line = copline;
warn(const_sv ? "Constant subroutine %s redefined"
@@ -3528,7 +3531,9 @@ newXS(char *name, void (*subaddr) (CV *), char *filename)
}
else if (CvROOT(cv) || CvXSUB(cv) || GvASSUMECV(gv)) {
/* already defined (or promised) */
- if (dowarn) {
+ if (dowarn && !(CvGV(cv) && GvSTASH(CvGV(cv))
+ && HvNAME(GvSTASH(CvGV(cv)))
+ && strEQ(HvNAME(GvSTASH(CvGV(cv))), "autouse"))) {
line_t oldline = curcop->cop_line;
curcop->cop_line = copline;
warn("Subroutine %s redefined",name);
@@ -4257,7 +4262,7 @@ ck_index(OP *o)
if (o->op_flags & OPf_KIDS) {
OP *kid = cLISTOPo->op_first->op_sibling; /* get past pushmark */
if (kid && kid->op_type == OP_CONST)
- fbm_compile(((SVOP*)kid)->op_sv);
+ fbm_compile(((SVOP*)kid)->op_sv, 0);
}
return ck_fun(o);
}