-
-
Notifications
You must be signed in to change notification settings - Fork 32k
Multi-line arguments in a function call crashes CPython #101928
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
Comments
Thanks for the report! I bisected this to #101633 cc @penguin-wwy @iritkatriel |
Thank you @hauntsaninja. I see the problem - we are now creating a basicblock with RETURN_CONST followed by NOP, and the redundant NOP is not being removed before propagate_line_numbers() uses BB_HAS_FALLTHROUGH on the block, which only looks at the last instruction to see if it exits the block. Possible fixes:
I'll fix it tomorrow if nobody else will beat me to it. |
@iritkatriel Thanks for the fix suggestion, I tried to fix it using the first method and it seems to have minimal impact and is effective. |
Thanks for the report @xiaxinmeng, and for the fix @penguin-wwy . |
Uh oh!
There was an error while loading. Please reload this page.
Crash report
In a function call, if one argument is split in two lines, CPython crashes. For example, we split the lambda expression, i.e., lamda_exp=lambda:1, in test2.py into two lines (See test1.py) . CPython reports a segmentation fault.
This crash just occurs on the latest main branch(e.g.commit a1f08f5, 8a2b7ee ). The older version of CPython(e.g. CPython 3.10.8, CPython 3.9.0 ) does not report any crash.
test1.py (Segmentation fault)
test2.py (work well )
Error messages
Segmentation Fault
Your environment
Linked PRs
The text was updated successfully, but these errors were encountered: