Fix context propagation below return()
authorVincent Pit <perl@profvince.com>
Mon, 27 Jun 2011 13:01:30 +0000 (15:01 +0200)
committerVincent Pit <perl@profvince.com>
Mon, 27 Jun 2011 13:01:34 +0000 (15:01 +0200)
commit7c2d9d03f8b64a80661ece16e7bfc15456ae3400
tree42352760a6536d35f091b115272e8525f2731811
parentfa22d357d948ce8e179d9c7a461076497fc9681e
Fix context propagation below return()

A.k.a. "RT #38809 strikes back".

Back in the time of perl 5.003, there was no void context, so "do" blocks
below a return needed special handling to use the dynamic context of the
caller instead of the static context implied by the return op location.

But nowadays context is applied by the scalarvoid(), scalar() and list()
functions, and they all already skip the return ops. "do" blocks below a
return don't get a static context, and GIMME_V ought to correctly return
the caller's context. The old workaround isn't even required anymore.
op.c
op.h
pp_ctl.c
t/op/do.t