FAQ
Experts: is the following bug related? (Also uses attributes, same assert, but in a different place.)

dcollins@nightshade64:~/perldebug$ ./perl -Ilib -W -e 'tie my$r:n'
perl: op.c:2799: Perl_op_lvalue_flags: Assertion `(o->op_flags & 3) != 1' failed.
Aborted


Without debug:

dcollins@nightshade64:~/perl$ ./perl -Ilib -W -e 'tie my$r:n'
Can't modify non-lvalue subroutine call of &attributes::import at -e line 1.
dcollins@nightshade64:~/perl$ ./perl -MO=Deparse -Ilib -e 'tie my$r:n'
use attributes ();
tie 'attributes'->import('main', \$r, 'n'), my $r;
-e syntax OK

Bisect

5c906035ffb6b2857a0f941a97ac9e7bb4126275 is the first bad commit
commit 5c906035ffb6b2857a0f941a97ac9e7bb4126275
Author: Gerard Goossen <gerard@ggoossen.net>
Date: Sat Aug 13 18:38:13 2011 +0200

     Propagate lvalue context only to children of list ops which are not in void context.

     Children list ops might be in void context because the list is in scalar
     context. A test that discarded elements in a list are not assigned lvalue
     context is added.
     Children of a list op might also be in void context because they are
     special entersub ops for attributes. This patch makes the
     OPpENTERSUB_NOMOD flag redundant.

:100644 100644 775705b55e4c0f69255527942edbf8ae7b4f0bbf c4c0e762493df04c66d924090cde0c87e2bea018 M op.c
:040000 040000 8b96ea734cee36175aef04088948ead0744c5b03 a5c0ce3a48597ac07dadb8340649a878dad3877b M t
bisect run success


---
via perlbug: queue: perl5 status: open
https://rt.perl.org/Ticket/Display.html?id=128183

Search Discussions

Discussion Posts

Previous

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 3 of 3 | next ›
Discussion Overview
groupperl5-porters @
categoriesperl
postedMay 18, '16 at 11:59p
activeMay 27, '16 at 12:28a
posts3
users1
websiteperl.org

1 user in discussion

Dan Collins via RT: 3 posts

People

Translate

site design / logo © 2017 Grokbase