This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
op_dump(): no OPf_SPECIAL on AELEMFAST,GVSV,GV
authorDavid Mitchell <davem@iabyn.com>
Mon, 23 Jan 2017 15:10:12 +0000 (15:10 +0000)
committerDavid Mitchell <davem@iabyn.com>
Mon, 23 Jan 2017 15:10:12 +0000 (15:10 +0000)
between 5.14 and 5.16 pp_aelemfast changed from using OPf_SPECIAL to
using op type to distinguish between a lexical or glob arg, but op_dump()
hadn't been updated to reflect this. Also, GVSV and GV never used the
OPf_SPECIAL flag, so testing for it with those ops was wrong (but
currently harmless).

dump.c

diff --git a/dump.c b/dump.c
index bda4928..5dbb96d 100644 (file)
--- a/dump.c
+++ b/dump.c
@@ -1073,7 +1073,6 @@ S_do_op_dump_bar(pTHX_ I32 level, UV bar, PerlIO *file, const OP *o)
        S_opdump_indent(aTHX_ o, level, bar, file,
                         "PADIX = %" IVdf "\n", (IV)cPADOPo->op_padix);
 #else
-       if ( ! (o->op_flags & OPf_SPECIAL)) { /* not lexical */
            if (cSVOPo->op_sv) {
                 STRLEN len;
                 const char * name;
@@ -1087,7 +1086,6 @@ S_do_op_dump_bar(pTHX_ I32 level, UV bar, PerlIO *file, const OP *o)
            }
            else
                S_opdump_indent(aTHX_ o, level, bar, file, "GV = NULL\n");
-       }
 #endif
        break;