-
-
Notifications
You must be signed in to change notification settings - Fork 32.4k
Open
Labels
3.14bugs and security fixesbugs and security fixesinterpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)topic-JITtype-crashA hard crash of the interpreter, possibly with a core dumpA hard crash of the interpreter, possibly with a core dump
Description
Crash report
The interpreter generator doesn't set the HAS_ESCAPES_FLAG
on instructions/micro-ops that use DECREF_INPUTS()
. It should, though.
I think the issue is that we short-circuit our escape check to omit calls that are all-uppercase, since these are generally non-escaping macros:
cpython/Tools/cases_generator/analyzer.py
Lines 732 to 734 in 7c3692f
if tkn.text.upper() == tkn.text: | |
# simple macro | |
continue |
I'm not sure if it makes sense to just add a special case for DECREF_INPUTS
here, or omit this heuristic and manually add things that fit this pattern to the non-escaping allowlist. There may also be other surgery involved to make this work correctly, since we want to avoid extra spills and reloads around this.
Linked PRs
Metadata
Metadata
Assignees
Labels
3.14bugs and security fixesbugs and security fixesinterpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)topic-JITtype-crashA hard crash of the interpreter, possibly with a core dumpA hard crash of the interpreter, possibly with a core dump