-
Notifications
You must be signed in to change notification settings - Fork 560
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
entertry is a B::OP since 5.12 #10895
Comments
From @rurbanThis is a bug report for perl from rurban@x-ray.at, The initial parse-time UNOP is upgraded at ck_eval to an LOGOP, The opclass info (opcode.pl) was always wrong, This inlines patch fixes this: The initial parse-time UNOP is upgraded at ck_eval to an LOGOP opcode.h | 2 +- Inline Patchdiff --git a/opcode.h b/opcode.h
index 122c67f..e5454ff 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 bd3d55a..fe923ed 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.
--
Flags: This perlbug was built using Perl 5.12.0 - Sat Apr 3 23:45:04 CEST 2010 Site configuration information for perl 5.12.0: Configured by rurban at Tue Apr 13 19:02:43 CEST 2010. Summary of my perl5 (revision 5 version 12 subversion 0) configuration: Locally applied patches: @INC for perl 5.12.0: Environment for perl 5.12.0: |
From @rurban2010/12/12 <perlbug-followup@perl.org>:
git-ready patch attached -- |
From @rurban0001-Make-entertry-a-LOGOP-not-BASEOP-UNOP.patchFrom 652ae19d20f08ed7e5b909cb41e6b6b8592f7377 Mon Sep 17 00:00:00 2001
From: Reini Urban <rurban@x-ray.at>
Date: Sun, 12 Dec 2010 16:20:33 +0100
Subject: [PATCH] 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.
---
opcode.h | 2 +-
regen/opcode.pl | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/opcode.h b/opcode.h
index 122c67f..e5454ff 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 bd3d55a..fe923ed 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.
--
1.7.2.3
|
From @cpansproutOn Sun Dec 12 10:42:53 2010, rurban wrote:
Thank you. Applied as a425677. |
The RT System itself - Status changed from 'new' to 'open' |
@cpansprout - Status changed from 'open' to 'resolved' |
Migrated from rt.perl.org#80622 (status was 'resolved')
Searchable as RT80622$
The text was updated successfully, but these errors were encountered: