constant folding shouldn't change return value of while [perl #73618]
authorJesse Luehrs <doy@tozt.net>
Tue, 3 Jul 2012 05:50:34 +0000 (00:50 -0500)
committerJesse Luehrs <doy@tozt.net>
Tue, 3 Jul 2012 05:58:46 +0000 (00:58 -0500)
commit317f3b66defd784a4e8b4d817739351e8d7a24c2
tree99a77570ce0907eb35a91a91c3f1fb630a2fb2a6
parentd68ce4acd69f210834d774d7afd79ecc40d86527
constant folding shouldn't change return value of while [perl #73618]

If the expression in while (EXPR) is a false constant, just return that
constant expression rather than OP_NULL during optimization.

Doesn't handle until loops yet, because "until (1)" is converted to
"while (!1)" by the parser, and so "!1" is already constant-folded to ''
by the time the while loop optree is constructed. Not sure what to do
about that.
op.c
t/op/loopctl.t