From e072356182ba759622852abf134caaa1d30a7aec Mon Sep 17 00:00:00 2001 From: ENJOU1224 Date: Sun, 4 Jan 2026 20:43:54 +0800 Subject: [PATCH] arch/risc-v: Fix incompatible pointer types in vector context switching The riscv_savevpu/restorevpu functions were using 'uintptr_t *' for vector registers, but 'tcb->xcp.vregs' is defined as 'uintreg_t *'. This mismatch caused compilation errors on GCC 13+ due to incompatible pointer types. This patch aligns the parameter types to 'uintreg_t *'. Signed-off-by: ENJOU1224 --- arch/risc-v/src/common/riscv_internal.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/risc-v/src/common/riscv_internal.h b/arch/risc-v/src/common/riscv_internal.h index 073d67e4fde..8fd3dd4795e 100644 --- a/arch/risc-v/src/common/riscv_internal.h +++ b/arch/risc-v/src/common/riscv_internal.h @@ -243,12 +243,12 @@ static inline uintreg_t *riscv_fpuregs(struct tcb_s *tcb) #ifdef CONFIG_ARCH_RV_ISA_V void riscv_vpuconfig(void); -void riscv_savevpu(uintptr_t *regs, uintptr_t *vregs); -void riscv_restorevpu(uintptr_t *regs, uintptr_t *vregs); +void riscv_savevpu(uintreg_t *regs, uintreg_t *vregs); +void riscv_restorevpu(uintreg_t *regs, uintreg_t *vregs); /* Get VPU register save area */ -static inline uintptr_t *riscv_vpuregs(struct tcb_s *tcb) +static inline uintreg_t *riscv_vpuregs(struct tcb_s *tcb) { return tcb->xcp.vregs; }