summaryrefslogtreecommitdiff
path: root/op.c
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2000-02-25 20:48:13 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2000-02-25 20:48:13 +0000
commitd6b6943a97c6558b9dac96a87ed59af4004a298e (patch)
tree3645966f385902fc37bd80e1b37eb14d54d0092c /op.c
parentf70ca6c83cb72c40e99a32a277d84b67546a860f (diff)
parentb46bc2b69fd0825253e7e513bb1c568567aa6ab0 (diff)
downloadperl-d6b6943a97c6558b9dac96a87ed59af4004a298e.tar.gz
Integrate with Sarathy.
p4raw-id: //depot/cfgperl@5257
Diffstat (limited to 'op.c')
-rw-r--r--op.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/op.c b/op.c
index 5b8a223af0..592d16a530 100644
--- a/op.c
+++ b/op.c
@@ -3764,6 +3764,7 @@ Perl_newWHILEOP(pTHX_ I32 flags, I32 debuggable, LOOP *loop, I32 whileline, OP *
OP *listop;
OP *o;
OP *condop;
+ U8 loopflags = 0;
if (expr && (expr->op_type == OP_READLINE || expr->op_type == OP_GLOB
|| (expr->op_type == OP_NULL && expr->op_targ == OP_GLOB))) {
@@ -3796,8 +3797,10 @@ Perl_newWHILEOP(pTHX_ I32 flags, I32 debuggable, LOOP *loop, I32 whileline, OP *
block = scope(block);
}
- if (cont)
+ if (cont) {
next = LINKLIST(cont);
+ loopflags |= OPpLOOP_CONTINUE;
+ }
if (expr) {
cont = append_elem(OP_LINESEQ, cont, newOP(OP_UNSTACK, 0));
if ((line_t)whileline != NOLINE) {
@@ -3840,6 +3843,7 @@ Perl_newWHILEOP(pTHX_ I32 flags, I32 debuggable, LOOP *loop, I32 whileline, OP *
loop->op_redoop = redo;
loop->op_lastop = o;
+ o->op_private |= loopflags;
if (next)
loop->op_nextop = next;