All interrupt ABIs should enforce either ()
or !
as return types
#132841
Labels
A-ABI
Area: Concerning the application binary interface (ABI)
A-hardware-interrupts
Area: Code for handling the "interrupt ABI" of various processors
A-LLVM
Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues.
C-bug
Category: This is a bug.
F-abi_x86_interrupt
O-msp430
O-riscv
Target: RISC-V architecture
O-x86_32
Target: x86 processors, 32 bit (like i686-*)
O-x86_64
Target: x86-64 processors (like x86_64-*)
T-compiler
Relevant to the compiler team, which will review and decide on the PR/issue.
I tried this code: Godbolt
I expected to see this happen: ...interrupts don't really return things, they're side effects, that's kind of in the definition, so these shouldn't return anything, and the ABI should enforce that, or during lowering..?
Instead, this happened:
msp430
riscv
x86
Meta
rustc --version --verbose
:@rustbot label: +A-ABI +A-hardware-interrupts +A-LLVM +F-abi_x86_interrupt +O-x86_64 +O-x86_32 +O-riscv +O-msp430 +T-compiler
Related Issues
msp430-interrupt
calling convention/ABI #38487x86-interrupt
calling convention #40180riscv-interrupt-{m,s}
ABIs #111889extern "x86-interrupt" fn
allows absurd signatures #132835extern "riscv-interrupt-{m,s}" fn
... compiles? #132836extern "*-interrupt-*" fn
should enforce 0-sized signatures #132837"msp430-interrupt" fn
should also be invalid #132839The text was updated successfully, but these errors were encountered: