-
Notifications
You must be signed in to change notification settings - Fork 13.5k
[clang] Clang ignores parameter for C23 gnu::interrupt attribute on RISC-V64 #140701
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
@llvm/issue-subscribers-clang-codegen Author: Jörg Vehlow (MofX)
When trying to create a supervisor trap handler on RISC-V64 using C23 attribute syntax, the parameter "supervisor" seems to be ignored and a machine trap handler is generated.
I.e. the following snipped generates an
gcc generates the correct code in both variants, see also in compiler explorer: https://godbolt.org/z/zeEjM8f5E |
Well this is neat: https://godbolt.org/z/fdo58xPE9
So it seems the |
We don't recognize the attribute (https://godbolt.org/z/nKj3qPePs) because the tablegen code produces a string switch with duplicate entries:
Note that we have |
Hi! This issue may be a good introductory issue for people new to working on LLVM. If you would like to work on this issue, your first steps are:
If you have any further questions about this issue, don't hesitate to ask via a comment in the thread below. |
@llvm/issue-subscribers-good-first-issue Author: Jörg Vehlow (MofX)
When trying to create a supervisor trap handler on RISC-V64 using C23 attribute syntax, the parameter "supervisor" seems to be ignored and a machine trap handler is generated.
I.e. the following snipped generates an
gcc generates the correct code in both variants, see also in compiler explorer: https://godbolt.org/z/zeEjM8f5E |
I'd like to work on this. |
@Mr-Anyone please, open a PR and then we can assign the issue to you. |
Fixed TableGen duplicate issues that causes the wrong interrupt attribute from being selected. resolves llvm#140701
Fixed TableGen duplicate issues that causes the wrong interrupt attribute from being selected. resolves llvm#140701
Fixed TableGen duplicate issues that causes the wrong interrupt attribute from being selected. resolves llvm#140701
Fixed TableGen duplicate issues that causes the wrong interrupt attribute from being selected. resolves #140701
When trying to create a supervisor trap handler on RISC-V64 using C23 attribute syntax, the parameter "supervisor" seems to be ignored and a machine trap handler is generated.
I.e. the following snipped generates an
mret
instead of ansret
for thec23
variant, while the correct one is generated for thepre_c23
variant:gcc generates the correct code in both variants, see also in compiler explorer: https://godbolt.org/z/zeEjM8f5E
The text was updated successfully, but these errors were encountered: