From 5a64967ce7c52d131b252bcaa40fe6fab9a9fd84 Mon Sep 17 00:00:00 2001 From: chao an Date: Mon, 17 Feb 2025 10:58:51 +0800 Subject: [PATCH] nuttx/compiler: fix build warning on GCC14 nuttx/include/arch/armv8-m/irq.h:496:36: warning: 'always_inline' function might not be inlinable unless also declared 'inline' [-Wattributes] 496 | static always_inline_function bool up_interrupt_context(void) | ^~~~~~~~~~~~~~~~~~~~ nuttx/include/arch/armv8-m/irq.h:490:41: warning: 'always_inline' function might not be inlinable unless also declared 'inline' [-Wattributes] 490 | static always_inline_function uintptr_t up_getusrsp(void *regs) | ^~~~~~~~~~~ nuttx/include/arch/armv8-m/irq.h:477:40: warning: 'always_inline' function might not be inlinable unless also declared 'inline' [-Wattributes] 477 | static always_inline_function uint32_t up_getsp(void) | ^~~~~~~~ nuttx/include/arch/armv8-m/irq.h:451:40: warning: 'always_inline' function might not be inlinable unless also declared 'inline' [-Wattributes] 451 | static always_inline_function uint32_t getpsp(void) | ^~~~~~ nuttx/include/arch/armv8-m/irq.h:441:36: warning: 'always_inline' function might not be inlinable unless also declared 'inline' [-Wattributes] 441 | static always_inline_function void setcontrol(uint32_t control) | ^~~~~~~~~~ nuttx/include/arch/armv8-m/irq.h:428:40: warning: 'always_inline' function might not be inlinable unless also declared 'inline' [-Wattributes] 428 | static always_inline_function uint32_t getcontrol(void) | ^~~~~~~~~~ Signed-off-by: chao an --- arch/or1k/include/mor1kx/irq.h | 3 +-- arch/xtensa/src/common/xtensa_backtrace.c | 7 ++++--- include/nuttx/compiler.h | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/arch/or1k/include/mor1kx/irq.h b/arch/or1k/include/mor1kx/irq.h index 41255e815b..b49a390e6c 100644 --- a/arch/or1k/include/mor1kx/irq.h +++ b/arch/or1k/include/mor1kx/irq.h @@ -228,8 +228,7 @@ static inline_function void up_irq_restore(irqstate_t flags) /* Enable IRQs */ -static inline_function void up_irq_enable(void) always_inline_function; -static inline_function void up_irq_enable(void) +static always_inline_function void up_irq_enable(void) { irqstate_t flags; mfspr(SPR_SYS_SR, flags); diff --git a/arch/xtensa/src/common/xtensa_backtrace.c b/arch/xtensa/src/common/xtensa_backtrace.c index 53495e01ac..e562d88663 100644 --- a/arch/xtensa/src/common/xtensa_backtrace.c +++ b/arch/xtensa/src/common/xtensa_backtrace.c @@ -73,8 +73,8 @@ struct xtensa_windowregs_s * Private Function Prototypes ****************************************************************************/ -static void inline get_window_regs(struct xtensa_windowregs_s *frame) -always_inline_function; +always_inline_function static +void get_window_regs(struct xtensa_windowregs_s *frame); /**************************************************************************** * Private Functions @@ -89,7 +89,8 @@ always_inline_function; ****************************************************************************/ #ifndef __XTENSA_CALL0_ABI__ -static void get_window_regs(struct xtensa_windowregs_s *frame) +always_inline_function static +void get_window_regs(struct xtensa_windowregs_s *frame) { __asm__ __volatile__("\trsr %0, WINDOWSTART\n": "=r"(frame->windowstart)); __asm__ __volatile__("\trsr %0, WINDOWBASE\n": "=r"(frame->windowbase)); diff --git a/include/nuttx/compiler.h b/include/nuttx/compiler.h index 44936af580..35cc85920b 100644 --- a/include/nuttx/compiler.h +++ b/include/nuttx/compiler.h @@ -251,7 +251,7 @@ * noinline_function indicates that the function should never be inlined. */ -# define always_inline_function __attribute__((always_inline,no_instrument_function)) +# define always_inline_function __attribute__((always_inline,no_instrument_function)) inline # define inline_function __attribute__((always_inline)) inline # define noinline_function __attribute__((noinline)) @@ -1087,7 +1087,7 @@ # define end_packed_struct __attribute__((packed)) # define reentrant_function # define naked_function -# define always_inline_function __attribute__((always_inline,no_instrument_function)) +# define always_inline_function __attribute__((always_inline,no_instrument_function)) inline # define inline_function __attribute__((always_inline)) inline # define noinline_function __attribute__((noinline)) # define noinstrument_function