In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/20c46147ebf1319e284a39fb6afe6a572f067e47?hp=b3725d49f914ef2bed63d7eb92a72ef6e886b489>

- Log -----------------------------------------------------------------
commit 20c46147ebf1319e284a39fb6afe6a572f067e47
Author: David Mitchell <[email protected]>
Date:   Tue Feb 10 15:03:54 2015 +0000

    remove invalid ASSUME from MULTIDEREF code
    
    RT #123735
    
    The code that examines ops looking for OP_MULTIDEREF candidates,
    makes assertions about what flags it think can be present on ops;
    the idea being that if those assumptions change, the optimisation
    code may need changing too.
    
    However, the following syntax-errored code
    
        print
        my(r)
    
    can trigger the assertion about PARENS not being set on an OP_GV.
    So don't assert that.
-----------------------------------------------------------------------

Summary of changes:
 op.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/op.c b/op.c
index db53f97..dea09cf 100644
--- a/op.c
+++ b/op.c
@@ -12891,7 +12891,8 @@ Perl_rpeep(pTHX_ OP *o)
                  * update the code accordingly. This applies to all the
                  * other ASSUMEs in the block of code too.
                  */
-                ASSUME(!(o2->op_flags & ~(OPf_WANT|OPf_MOD|OPf_SPECIAL)));
+                ASSUME(!(o2->op_flags &
+                            ~(OPf_WANT|OPf_MOD|OPf_PARENS|OPf_SPECIAL)));
                 ASSUME(!(o2->op_private & ~OPpEARLY_CV));
 
                 o2 = o2->op_next;

--
Perl5 Master Repository

Reply via email to