perl5 icon indicating copy to clipboard operation
perl5 copied to clipboard

_Bool S_sprintf_is_multiconcatable(): Assertion `!(o->op_flags & OPf_STACKED)' failed (op.c:2533)

Open p5pRT opened this issue 7 years ago • 5 comments

Migrated from rt.perl.org#133137 (status was 'open')

Searchable as RT133137$

p5pRT avatar Apr 21 '18 00:04 p5pRT

From @geeknik

This assert was triggered with Perl v5.27.10-134-g2407a17ad5.

./perl -e '0/v$0sprintf$0$0'

Scalar found where operator expected at -e line 1, near "$0$0"   (Missing operator before $0?) perl​: op.c​:2533​: _Bool S_sprintf_is_multiconcatable(OP *, struct sprintf_ismc_info *)​: Assertion `!(o->op_flags & OPf_STACKED)' failed. Aborted

p5pRT avatar Apr 21 '18 00:04 p5pRT

From @iabyn

On Fri, Apr 20, 2018 at 05​:43​:50PM -0700, Brian Carpenter wrote​:

# New Ticket Created by Brian Carpenter # Please include the string​: [perl #133137] # in the subject line of all future correspondence about this issue. # <URL​: https://rt-archive.perl.org/perl5/Ticket/Display.html?id=133137 >

This assert was triggered with Perl v5.27.10-134-g2407a17ad5.

./perl -e '0/v$0sprintf$0$0'

Scalar found where operator expected at -e line 1, near "$0$0" (Missing operator before $0?) perl​: op.c​:2533​: _Bool S_sprintf_is_multiconcatable(OP *, struct sprintf_ismc_info *)​: Assertion `!(o->op_flags & OPf_STACKED)' failed. Aborted

I think this comes under the category of 'we shouldn't continue parsing when we've encountered a syntax error', which I intend to do sometime in 5.29.

-- Music lesson​: a symbiotic relationship whereby a pupil's embellishments concerning the amount of practice performed since the last lesson are rewarded with embellishments from the teacher concerning the pupil's progress over the corresponding period.

p5pRT avatar Apr 21 '18 15:04 p5pRT

The RT System itself - Status changed from 'new' to 'open'

p5pRT avatar Apr 21 '18 15:04 p5pRT

This flaw still impacts perl v5.33.6 (v5.33.5-57-g3e793456f2).

geeknik avatar Dec 28 '20 14:12 geeknik

Still in v5.39.6 (v5.39.5-81-g450676c25a):

$ valgrind -q ./perl -e '0/v$0sprintf$0$0'
Scalar found where operator expected (Missing operator before "$0"?) at -e line 1, near "$0$0"
perl: peep.c:124: S_sprintf_is_multiconcatable: Assertion `!(o->op_flags & OPf_STACKED)' failed.
Aborted

tonycoz avatar Dec 06 '23 04:12 tonycoz