Skip Menu |
Report information
Id: 130578
Status: pending release
Priority: 0/
Queue: perl5

Owner: Nobody
Requestors: brian.carpenter [at] gmail.com
Cc:
AdminCc:

Operating System: (no value)
PatchStatus: (no value)
Severity: low
Type: unknown
Perl Version: (no value)
Fixed In: 5.27.7



From: "Brian 'geeknik' Carpenter" <brian.carpenter [...] gmail.com>
To: perlbug [...] perl.org
Date: Tue, 17 Jan 2017 17:07:54 -0600
Subject: op.c:10706: OP *Perl_ck_refassign(OP *): Assertion `left->op_type == OP_SREFGEN' failed
Download (untitled) / with headers
text/plain 175b
Triggered with Perl v5.25.8-195-gc1b4bd9.

./perl -e '\$0=~y((()))00=0'
perl: op.c:10706: OP *Perl_ck_refassign(OP *): Assertion `left->op_type == OP_SREFGEN' failed.
Aborted
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 1.5k
On Tue, 17 Jan 2017 15:08:56 -0800, brian.carpenter@gmail.com wrote: Show quoted text
> Triggered with Perl v5.25.8-195-gc1b4bd9. > > ./perl -e '\$0=~y((()))00=0' > perl: op.c:10706: OP *Perl_ck_refassign(OP *): Assertion `left->op_type == > OP_SREFGEN' failed. > Aborted
This can be simplified to: ./perl -e '\$0=~y/x//=0' The op tree where at the point of the assertion is: #4 0x00000000004897b8 in Perl_ck_refassign (o=0x61900000bd00) at op.c:10719 10719 assert (left->op_type == OP_SREFGEN); (gdb) call Perl_op_dump(o) { 1 TYPE = refassign ===> NULL FLAGS = (UNKNOWN,KIDS,STACKED,SLABBED) PRIVATE = (SV,0x2) { 2 TYPE = const ===> 2 FLAGS = (SCALAR,SLABBED,MORESIB) SV = IV(0) } { 3 TYPE = null ===> NULL FLAGS = (UNKNOWN,KIDS,STACKED,SLABBED) PRIVATE = (0x2) { 4 TYPE = srefgen ===> NULL FLAGS = (SCALAR,KIDS,SLABBED,MORESIB) PRIVATE = (0x1) { 5 TYPE = null ===> NULL (was list) FLAGS = (LIST,KIDS,REF,MOD,SLABBED) { 6 TYPE = rv2sv ===> NULL FLAGS = (SCALAR,KIDS,REF,MOD,SLABBED) PRIVATE = (0x1) { 7 TYPE = gv ===> 7 FLAGS = (SCALAR,SLABBED) GV = main::0 } } } } { 8 TYPE = trans ===> 8 FLAGS = (SCALAR,STACKED,SLABBED) PRIVATE = (IDENT) } } } Tony
Subject: Re: [perl #130578] op.c:10706: OP *Perl_ck_refassign(OP *): Assertion `left->op_type == OP_SREFGEN' failed
From: Zefram <zefram [...] fysh.org>
Date: Wed, 6 Dec 2017 00:55:36 +0000
To: perl5-porters [...] perl.org
Fixed in commit 38a3df78b8fbbdf02988dd5fe691c23a8041334f. -zefram


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

For issues related to this RT instance (aka "perlbug"), please contact perlbug-admin at perl.org