summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReini Urban <rurban@x-ray.at>2010-12-12 16:20:33 +0100
committerFather Chrysostomos <sprout@cpan.org>2010-12-12 12:32:51 -0800
commita4256772dd403c7ce44dc3a7f7a15da1982f8905 (patch)
tree587213a33bb7175dbaef93ed63ff924c5df4e3c4
parent929fffa4acb2dedab3293617c11903a4914d8fdf (diff)
downloadperl-a4256772dd403c7ce44dc3a7f7a15da1982f8905.tar.gz
Make entertry a LOGOP, not BASEOP/UNOP
The initial parse-time UNOP is upgraded at ck_eval to an LOGOP - op_other holding the ptr to leavetry - which causes problems at run-time B optype inspection. The opclass info was always wrong, the Bytecode compiler broke with 5.12.
-rw-r--r--opcode.h2
-rwxr-xr-xregen/opcode.pl2
2 files changed, 2 insertions, 2 deletions
diff --git a/opcode.h b/opcode.h
index 122c67f572..e5454ff0a4 100644
--- a/opcode.h
+++ b/opcode.h
@@ -1895,7 +1895,7 @@ EXTCONST U32 PL_opargs[] = {
0x00000604, /* hintseval */
0x00001b40, /* entereval */
0x00001100, /* leaveeval */
- 0x00000b40, /* entertry */
+ 0x00000340, /* entertry */
0x00000400, /* leavetry */
0x00001b00, /* ghbyname */
0x00011400, /* ghbyaddr */
diff --git a/regen/opcode.pl b/regen/opcode.pl
index bd3d55adae..fe923edd37 100755
--- a/regen/opcode.pl
+++ b/regen/opcode.pl
@@ -1049,7 +1049,7 @@ hintseval eval hints ck_svconst s$
entereval eval "string" ck_eval d% S
leaveeval eval "string" exit ck_null 1 S
#evalonce eval constant string ck_null d1 S
-entertry eval {block} ck_eval d%
+entertry eval {block} ck_eval d|
leavetry eval {block} exit ck_null @
# Get system info.