Skip to content
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

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

Open
p5pRT opened this issue Apr 21, 2018 · 5 comments
Assignees

Comments

@p5pRT
Copy link

p5pRT commented Apr 21, 2018

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

Searchable as RT133137$

@p5pRT
Copy link
Author

p5pRT commented Apr 21, 2018

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
Copy link
Author

p5pRT commented Apr 21, 2018

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
Copy link
Author

p5pRT commented Apr 21, 2018

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

@geeknik
Copy link

geeknik commented Dec 28, 2020

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

@tonycoz
Copy link
Contributor

tonycoz commented Dec 6, 2023

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 tonycoz self-assigned this Dec 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants