https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106
--- Comment #3 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Christoph Meullner <cmuell...@gcc.gnu.org>: https://gcc.gnu.org/g:f888d5fbea1820ac75d84dfef0a974e578670394 commit r16-2510-gf888d5fbea1820ac75d84dfef0a974e578670394 Author: Christoph Müllner <christoph.muell...@vrull.eu> Date: Fri Jul 25 10:27:59 2025 +0200 RISC-V: Remove user-level interrupts There was once a RISC-V extension draft ("N"), which introduced user-level interrupts. However, it was never ratified and the specification draft has been removed from the RISC-V ISA manual in commit `b6cade07034` with the comment "it'll likely need to be redesigned". Support for a N extension never made it to GCC, but we support fuction attributes for user-level interrupt handlers that use the URET instruction. The "user" interrupt attribute was documented in the RISC-V C API, but has been removed in PR #106 in May 2025 (driven by LLVM devs/ maintainers and ack'ed by at least one GCC maintainer). Let's drop URET support from GCC as well. gcc/ChangeLog: * config/riscv/riscv.cc (enum riscv_privilege_levels): Remove USER_MODE. (riscv_handle_type_attribute): Remove "user" interrupts. (riscv_expand_epilogue): Likewise. (riscv_get_interrupt_type): Likewise. * config/riscv/riscv.md (riscv_uret): Remove URET pattern. * doc/extend.texi: Remove documentation of user interrupts. gcc/testsuite/ChangeLog: * gcc.target/riscv/interrupt-conflict-mode.c: Remove "user" interrupts. * gcc.target/riscv/xtheadint-push-pop.c: Likewise. * gcc.target/riscv/interrupt-umode.c: Removed. Reported-by: Sam Elliott <quic_aelli...@quicinc.com> Signed-off-by: Christoph Müllner <christoph.muell...@vrull.eu>