-
-
Notifications
You must be signed in to change notification settings - Fork 30.7k
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
remove_unreachable: Assertion `target->b_predecessors == 0 || target == b->b_next' failed #124871
Comments
This bug went away with fe23f8e. |
The issue here is that we have a small basicblock which has I need to figure out whether the assertion is wrong or it's something else. |
The assertion is wrong. The reason it was added was because this function marks blocks as visited when they are processed, and not when they are inserted to the queue (as other traversals do). The assertion ensured that we don't enter the same block to the queue more than once. The PR changes it to mark blocks as visited as soon as they are inserted to the queue, and remove the assertion. |
awesome, thank you. |
…alysis (pythonGH-124952) (cherry picked from commit f474391) Co-authored-by: Irit Katriel <[email protected]>
Crash report
What happened?
The following code causes an assertion in a cpython debug build
output (Python 3.13.0a5+):
The bug is in the current 3.13 branch.
I bisected the problem down to 04697bc
@iritkatriel I think this is again one for you.
Little side note. I found this bug after fuzzing for ~3 days. I want to start to test the cpython main branch in the future and I hope to find bugs like this earlier.
CPython versions tested on:
3.13
Operating systems tested on:
No response
Output from running 'python -VV' on the command line:
No response
Linked PRs
The text was updated successfully, but these errors were encountered: