diff options
author | Father Chrysostomos <sprout@cpan.org> | 2014-11-08 12:37:43 -0800 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2014-11-08 16:06:43 -0800 |
commit | aafd37e70de747bdeaa820466cb60c553c54882e (patch) | |
tree | bb777c8c9047ba60da67f59bb4e8ad282e17b41c /regen/opcodes | |
parent | f39944c15e410735fc6ec1ad2f9dfa84ea4e409d (diff) | |
download | perl-aafd37e70de747bdeaa820466cb60c553c54882e.tar.gz |
Remove OA_DANGEROUS from cond_expr
OA_DANGEROUS indicates that temporary copies may need to be made in
list assignment, to handle things like:
($a, $b) = ($b, $a);
In other words, an op type is flagged with OA_DANGEROUS if its return
values could occur elsewhere on the stack.
?: always returns one of its arguments. Since aassign_common_vars,
which does the danger check, also checks the kids of the cond_expr op,
it is not necessary for cond_expr to be flagged this way.
Diffstat (limited to 'regen/opcodes')
-rw-r--r-- | regen/opcodes | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/regen/opcodes b/regen/opcodes index ea6aa1db3f..f193ebb797 100644 --- a/regen/opcodes +++ b/regen/opcodes @@ -275,7 +275,7 @@ and logical and (&&) ck_null | or logical or (||) ck_null | xor logical xor ck_null fs2 S S dor defined or (//) ck_null | -cond_expr conditional expression ck_null d| +cond_expr conditional expression ck_null | andassign logical and assignment (&&=) ck_null s| orassign logical or assignment (||=) ck_null s| dorassign defined or assignment (//=) ck_null s| |