From f6f3eafa3bddfee5530bc71f9435331dc1d1a409 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Mon, 7 Jul 2025 08:37:23 -0500 Subject: [PATCH] powerpc/gen5200/.../bestcomm_cntrl.h: Fix type punning warnings Three macros included a case of type punning in each. Addressed by introducing a local pointer variable. --- .../include/bsp/bestcomm/task_api/bestcomm_cntrl.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/bsps/powerpc/gen5200/include/bsp/bestcomm/task_api/bestcomm_cntrl.h b/bsps/powerpc/gen5200/include/bsp/bestcomm/task_api/bestcomm_cntrl.h index 3712bae3d0..245f6bbeaa 100644 --- a/bsps/powerpc/gen5200/include/bsp/bestcomm/task_api/bestcomm_cntrl.h +++ b/bsps/powerpc/gen5200/include/bsp/bestcomm/task_api/bestcomm_cntrl.h @@ -118,16 +118,18 @@ #define SDMA_INT_ENABLE(RegAddr, Bit) \ do { \ rtems_interrupt_level level; \ + volatile uint32 *reg = (volatile uint32 *) RegAddr; \ rtems_interrupt_disable(level); \ - *((volatile uint32 *) RegAddr) &= ~((uint32) (1 << Bit)); \ + *reg &= ~((uint32) (1 << Bit)); \ rtems_interrupt_enable(level); \ } while (0) #define SDMA_INT_DISABLE(RegAddr, Bit) \ do { \ rtems_interrupt_level level; \ + volatile uint32 *reg = (volatile uint32 *) RegAddr; \ rtems_interrupt_disable(level); \ - *((volatile uint32 *) (RegAddr)) |= ((uint32)(1 << Bit)); \ + *reg |= ((uint32)(1 << Bit)); \ rtems_interrupt_enable(level); \ } while (0) @@ -147,7 +149,8 @@ /* Clear the IntPend bit */ #define SDMA_CLEAR_IEVENT(RegAddr, Bit) { \ - *((volatile uint32 *)RegAddr) = ((uint32)(1<