Skip to content

Commit

Permalink
arch/risc-v/src/common/riscv_backtrace.c: Fix "error: pointer of type…
Browse files Browse the repository at this point in the history
… 'void *' used in arithmetic"

Signed-off-by: Jukka Laitinen <[email protected]>
  • Loading branch information
Jukka Laitinen authored and xiaoxiang781216 committed Jan 30, 2025
1 parent 52dbfda commit 80e545a
Showing 1 changed file with 15 additions and 9 deletions.
24 changes: 15 additions & 9 deletions arch/risc-v/src/common/riscv_backtrace.c
Original file line number Diff line number Diff line change
Expand Up @@ -157,13 +157,15 @@ int up_backtrace(struct tcb_s *tcb, void **buffer, int size, int skip)
(void *)getfp(), NULL, buffer, size, &skip);
#else
ret = backtrace(rtcb->stack_base_ptr,
rtcb->stack_base_ptr + rtcb->adj_stack_size,
(uintptr_t *)((uintptr_t)rtcb->stack_base_ptr +
rtcb->adj_stack_size),
(void *)getfp(), NULL, buffer, size, &skip);
#endif
if (ret < size)
{
ret += backtrace(rtcb->stack_base_ptr,
rtcb->stack_base_ptr + rtcb->adj_stack_size,
ret += backtrace(rtcb->stack_base_ptr, (uintptr_t *)
((uintptr_t)rtcb->stack_base_ptr +
rtcb->adj_stack_size),
running_regs()[REG_FP],
running_regs()[REG_EPC],
&buffer[ret], size - ret, &skip);
Expand All @@ -174,16 +176,18 @@ int up_backtrace(struct tcb_s *tcb, void **buffer, int size, int skip)
#ifdef CONFIG_ARCH_KERNEL_STACK
if (rtcb->xcp.ustkptr != NULL)
{
ret = backtrace(rtcb->stack_base_ptr,
rtcb->stack_base_ptr + rtcb->adj_stack_size,
ret = backtrace(rtcb->stack_base_ptr, (uintptr_t *)
((uintptr_t)rtcb->stack_base_ptr +
rtcb->adj_stack_size),
(void *)*(rtcb->xcp.ustkptr + 1), NULL,
buffer, size, &skip);
}
else
#endif
{
ret = backtrace(rtcb->stack_base_ptr,
rtcb->stack_base_ptr + rtcb->adj_stack_size,
ret = backtrace(rtcb->stack_base_ptr, (uintptr_t *)
((uintptr_t)rtcb->stack_base_ptr +
rtcb->adj_stack_size),
(void *)getfp(), NULL, buffer, size, &skip);
}
}
Expand All @@ -194,15 +198,17 @@ int up_backtrace(struct tcb_s *tcb, void **buffer, int size, int skip)
if (tcb->xcp.ustkptr != NULL)
{
ret = backtrace(tcb->stack_base_ptr,
tcb->stack_base_ptr + tcb->adj_stack_size,
(uintptr_t *)((uintptr_t)tcb->stack_base_ptr +
tcb->adj_stack_size),
(void *)*(tcb->xcp.ustkptr + 1), NULL,
buffer, size, &skip);
}
else
#endif
{
ret = backtrace(tcb->stack_base_ptr,
tcb->stack_base_ptr + tcb->adj_stack_size,
(uintptr_t *)((uintptr_t)tcb->stack_base_ptr +
tcb->adj_stack_size),
(void *)tcb->xcp.regs[REG_FP],
(void *)tcb->xcp.regs[REG_EPC],
buffer, size, &skip);
Expand Down

0 comments on commit 80e545a

Please sign in to comment.