perl5
perl5 copied to clipboard
_Bool S_sprintf_is_multiconcatable(): Assertion `!(o->op_flags & OPf_STACKED)' failed (op.c:2533)
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
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.
The RT System itself - Status changed from 'new' to 'open'
This flaw still impacts perl v5.33.6 (v5.33.5-57-g3e793456f2).
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