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

Use array of size 1 for self_or_null and other instruction inputs that get merged into another array. #123996

Open
markshannon opened this issue Sep 12, 2024 · 0 comments
Labels
3.14 new features, bugs and security fixes type-bug An unexpected behavior, bug, or error

Comments

@markshannon
Copy link
Member

markshannon commented Sep 12, 2024

Bug report

We have a common pattern for calls. The stack looks like this: func self_or_null args[oparg] and if self_or_null is not NULL we merge it into the args array. This is error prone however as the code generator thinks self_or_null is a discrete scalar, not part of an array.
We have specific code to workaround this, but I'm not sure that there are lurking bugs.

We should, instead, define self_or_null as an array of size 1. This tells the code generator that it is an array and must be in memory, not a register.

As well as causing issues now, this is necessary for #120024 and #121459.

Linked PRs

@markshannon markshannon added type-bug An unexpected behavior, bug, or error 3.14 new features, bugs and security fixes labels Sep 12, 2024
markshannon added a commit that referenced this issue Sep 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3.14 new features, bugs and security fixes type-bug An unexpected behavior, bug, or error
Projects
None yet
Development

No branches or pull requests

1 participant