diff options
author | Father Chrysostomos <sprout@cpan.org> | 2014-11-08 12:45:13 -0800 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2014-11-08 16:06:43 -0800 |
commit | 26812b4a900f5f8ec634ef9bb566822cb2b43975 (patch) | |
tree | b14cb5a9c04b3a6cd2ae2334b85f8d9c5a71babe | |
parent | b31e13ff8bcc3b886cde8ce66380fc1032eaf4f9 (diff) | |
download | perl-26812b4a900f5f8ec634ef9bb566822cb2b43975.tar.gz |
Remove OA_DANGEROUS from exit
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.
exit usually doesn’t return. When it fails, it returns a read-only
undef, so we don’t need temp copies for its sake.
-rw-r--r-- | opcode.h | 2 | ||||
-rw-r--r-- | regen/opcodes | 2 |
2 files changed, 2 insertions, 2 deletions
@@ -1940,7 +1940,7 @@ EXTCONST U32 PL_opargs[] = { 0x00000d04, /* redo */ 0x00000d44, /* dump */ 0x00000d04, /* goto */ - 0x00009b44, /* exit */ + 0x00009b04, /* exit */ 0x00000e40, /* method_named */ 0x00000340, /* entergiven */ 0x00000100, /* leavegiven */ diff --git a/regen/opcodes b/regen/opcodes index 7c02e925c2..7105c7f6eb 100644 --- a/regen/opcodes +++ b/regen/opcodes @@ -306,7 +306,7 @@ next next ck_null s} redo redo ck_null s} dump dump ck_null ds} goto goto ck_null s} -exit exit ck_fun ds% S? +exit exit ck_fun s% S? method_named method with known name ck_null d. entergiven given() ck_null d| |