diff options
author | Father Chrysostomos <sprout@cpan.org> | 2014-11-08 10:41:23 -0800 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2014-11-08 11:45:02 -0800 |
commit | 85f22e05efca6c0fbc035b09cb5f0e6e1a4ca717 (patch) | |
tree | 850a3c8dba948c33ee2680eaa1ae96fabebd6e33 /regen/opcodes | |
parent | 9e319cc4fd53e7fda8d24a3e32cedcd89cb2f66c (diff) | |
download | perl-85f22e05efca6c0fbc035b09cb5f0e6e1a4ca717.tar.gz |
Remove OA_DANGEROUS from non-integer postdec/inc
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.
While pp_postinc may return a lexical scalar, that only happens when
the OPpTARGET_MY optimisation is happening; and aassign_common_vars in
op.c checks specifically for that.
Otherwise, it only returns a mortal or target, so it is not
OA_DANGEROUS.
Diffstat (limited to 'regen/opcodes')
-rw-r--r-- | regen/opcodes | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/regen/opcodes b/regen/opcodes index fc8aa2215a..6d0e41729b 100644 --- a/regen/opcodes +++ b/regen/opcodes @@ -111,10 +111,10 @@ preinc preincrement (++) ck_lfun dIs1 S i_preinc integer preincrement (++) ck_lfun dis1 S predec predecrement (--) ck_lfun dIs1 S i_predec integer predecrement (--) ck_lfun dis1 S -postinc postincrement (++) ck_lfun dIsT1 S -i_postinc integer postincrement (++) ck_lfun disT1 S -postdec postdecrement (--) ck_lfun dIsT1 S -i_postdec integer postdecrement (--) ck_lfun disT1 S +postinc postincrement (++) ck_lfun IsT1 S +i_postinc integer postincrement (++) ck_lfun isT1 S +postdec postdecrement (--) ck_lfun IsT1 S +i_postdec integer postdecrement (--) ck_lfun isT1 S # Ordinary operators. |