summaryrefslogtreecommitdiff
path: root/pp.h
diff options
context:
space:
mode:
authorGerard Goossen <gerard@ggoossen.net>2011-08-27 17:08:07 +0200
committerFather Chrysostomos <sprout@cpan.org>2011-09-01 09:12:43 -0700
commit86e5639be8611d120113394b3774c1bbb3d94a38 (patch)
tree9b1ef72ee5759b1cc094827cb9c1170d88383a9b /pp.h
parentb4155db21af9a8f817d175591c873bccbd919871 (diff)
downloadperl-86e5639be8611d120113394b3774c1bbb3d94a38.tar.gz
Fix overloaded <> when the peephole optimiser is disabled.
Diffstat (limited to 'pp.h')
-rw-r--r--pp.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/pp.h b/pp.h
index 5cde92b047..0ba877f22a 100644
--- a/pp.h
+++ b/pp.h
@@ -448,8 +448,12 @@ Does not use C<TARG>. See also C<XPUSHu>, C<mPUSHu> and C<PUSHu>.
SETTARG; \
PUTBACK; \
if (jump) { \
+ OP *jump_o = NORMAL->op_next; \
+ while (jump_o->op_type == OP_NULL) \
+ jump_o = jump_o->op_next; \
+ assert(jump_o->op_type == OP_ENTERSUB); \
PL_markstack_ptr--; \
- return NORMAL->op_next->op_next; \
+ return jump_o->op_next; \
} \
return NORMAL; \
} \