diff options
author | Ilya Zakharevich <ilya@math.berkeley.edu> | 1998-03-02 16:36:02 -0500 |
---|---|---|
committer | Malcolm Beattie <mbeattie@sable.ox.ac.uk> | 1998-03-05 19:04:34 +0000 |
commit | 2f34f9d4825ac9262ece854fc4c50479f4838ff8 (patch) | |
tree | 5d59502cebf6b8a413033b2d67ad85a099a5a30a /op.c | |
parent | d6582e46845f6c37893e96dbdd201cd0601d3550 (diff) | |
download | perl-2f34f9d4825ac9262ece854fc4c50479f4838ff8.tar.gz |
Make autouse -w-safe
p4raw-id: //depot/perl@781
Diffstat (limited to 'op.c')
-rw-r--r-- | op.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -3332,7 +3332,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" @@ -3527,7 +3530,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); |