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
Opcode module (and thus Safe) think block eval is a string eval #9999
Comments
From @timbunce $ perl -Mops=:default -e 'eval { ; }' A block eval (entertry opcode) is being treated as a string eval (entereval opcode). This is a serious problem because most users of Opcode & Safe want to This is true for current blead and at least as far back as 5.8.6. The bug manifested for me as $ perl -Mops=:default,require /Users/timbo/pg/perl598/lib/5.8.9/Carp.pm where line 33 is eval { require Carp::Heavy }; (Actually the bug manifested while extending PostgreSQL PL/Perl to support the (Note that this works: Using B::Concise shows an entertry opcode: $ perl -MO=Concise -e 'eval { ; }' Using perl -DtxT shows that the entertry started out as a entereval: $ perl -DtxT -e 'eval { ; }' 2>&1 ### 1:LEX_NORMAL/XTERMBLOCK "{ ; }\n" In toke.c we have: case KEY_eval: It seems that toke.c should use OP_ENTERTRY instead of OP_ENTEREVAL when Perl Info
|
From @timbunceAny chance someone could take a look at this for 5.12? I've tried but rapidly went out of my depth (assertion failures etc etc). Tim. On Tue, Dec 01, 2009 at 05:20:29AM -0800, Tim Bunce wrote:
|
From @rgarcia2009/12/1 Tim Bunce <perlbug-followup@perl.org>:
This should be fixed by commit 32e2a35. |
The RT System itself - Status changed from 'new' to 'open' |
@rgs - Status changed from 'open' to 'resolved' |
Migrated from rt.perl.org#70970 (status was 'resolved')
Searchable as RT70970$
The text was updated successfully, but these errors were encountered: