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 /opcode.h | |
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 'opcode.h')
-rw-r--r-- | opcode.h | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -1911,7 +1911,7 @@ EXTCONST U32 PL_opargs[] = { 0x00000300, /* or */ 0x00011206, /* xor */ 0x00000300, /* dor */ - 0x00000340, /* cond_expr */ + 0x00000300, /* cond_expr */ 0x00000304, /* andassign */ 0x00000304, /* orassign */ 0x00000304, /* dorassign */ |