diff options
author | Gurusamy Sarathy <gsar@cpan.org> | 1998-03-05 22:55:53 +0000 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 1998-03-05 22:55:53 +0000 |
commit | 888da360572857d466db3c37a59308523ea41a9a (patch) | |
tree | d5dba171bebd8e54ee6b148b8624c6bc8f5a1397 /op.c | |
parent | 9c82454c97e6b03ea96c9a17bf8b898d470e0064 (diff) | |
parent | 2779dcf1a3ceec167d36a36fc44de44737edcc4c (diff) | |
download | perl-888da360572857d466db3c37a59308523ea41a9a.tar.gz |
[win32] integrate mainline
p4raw-id: //depot/win32/perl@789
Diffstat (limited to 'op.c')
-rw-r--r-- | op.c | 11 |
1 files changed, 8 insertions, 3 deletions
@@ -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); } |