From e2ce9d426a76ddd75e57dc475e4a696931e546aa Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 17 Jul 2024 18:38:08 +0200 Subject: [PATCH] score: Mark _CPU_Thread_Idle_body() as no-return This helps the compiler to not generate dead code. Update #5067. --- cpukit/score/cpu/aarch64/include/rtems/score/cpu.h | 2 +- cpukit/score/cpu/arm/include/rtems/score/cpu.h | 2 +- cpukit/score/cpu/bfin/include/rtems/score/cpu.h | 2 +- cpukit/score/cpu/i386/include/rtems/score/cpu.h | 2 +- cpukit/score/cpu/lm32/include/rtems/score/cpu.h | 2 +- cpukit/score/cpu/m68k/include/rtems/score/cpu.h | 2 +- cpukit/score/cpu/microblaze/include/rtems/score/cpu.h | 2 +- cpukit/score/cpu/mips/include/rtems/score/cpu.h | 2 +- cpukit/score/cpu/moxie/include/rtems/score/cpu.h | 2 +- cpukit/score/cpu/nios2/include/rtems/score/cpu.h | 2 +- cpukit/score/cpu/no_cpu/cpuidle.c | 2 -- cpukit/score/cpu/no_cpu/include/rtems/score/cpu.h | 2 +- cpukit/score/cpu/or1k/include/rtems/score/cpu.h | 2 +- cpukit/score/cpu/powerpc/include/rtems/score/cpu.h | 2 +- cpukit/score/cpu/riscv/cpu.c | 2 -- cpukit/score/cpu/riscv/include/rtems/score/cpu.h | 2 +- cpukit/score/cpu/sh/include/rtems/score/cpu.h | 2 +- cpukit/score/cpu/sparc/include/rtems/score/cpu.h | 2 +- cpukit/score/cpu/sparc64/include/rtems/score/cpu.h | 2 +- cpukit/score/cpu/v850/include/rtems/score/cpu.h | 2 +- cpukit/score/cpu/x86_64/include/rtems/score/cpu.h | 2 +- 21 files changed, 19 insertions(+), 23 deletions(-) diff --git a/cpukit/score/cpu/aarch64/include/rtems/score/cpu.h b/cpukit/score/cpu/aarch64/include/rtems/score/cpu.h index 8a8e80832f..4cd217caae 100644 --- a/cpukit/score/cpu/aarch64/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/aarch64/include/rtems/score/cpu.h @@ -388,7 +388,7 @@ uint32_t _CPU_Counter_frequency( void ); CPU_Counter_ticks _CPU_Counter_read( void ); -void *_CPU_Thread_Idle_body( uintptr_t ignored ); +RTEMS_NO_RETURN void *_CPU_Thread_Idle_body( uintptr_t ignored ); typedef enum { AARCH64_EXCEPTION_SP0_SYNCHRONOUS = 0, diff --git a/cpukit/score/cpu/arm/include/rtems/score/cpu.h b/cpukit/score/cpu/arm/include/rtems/score/cpu.h index a462b48cf1..6df9d94f1c 100644 --- a/cpukit/score/cpu/arm/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/arm/include/rtems/score/cpu.h @@ -571,7 +571,7 @@ uint32_t _CPU_Counter_frequency( void ); CPU_Counter_ticks _CPU_Counter_read( void ); -void *_CPU_Thread_Idle_body( uintptr_t ignored ); +RTEMS_NO_RETURN void *_CPU_Thread_Idle_body( uintptr_t ignored ); #if defined(ARM_MULTILIB_ARCH_V4) diff --git a/cpukit/score/cpu/bfin/include/rtems/score/cpu.h b/cpukit/score/cpu/bfin/include/rtems/score/cpu.h index 72e6d14433..a1c379ea3d 100644 --- a/cpukit/score/cpu/bfin/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/bfin/include/rtems/score/cpu.h @@ -492,7 +492,7 @@ void _CPU_ISR_install_vector( CPU_ISR_handler *old_handler ); -void *_CPU_Thread_Idle_body( uintptr_t ignored ); +RTEMS_NO_RETURN void *_CPU_Thread_Idle_body( uintptr_t ignored ); /** * @addtogroup RTEMSScoreCPUBfinCPUContext diff --git a/cpukit/score/cpu/i386/include/rtems/score/cpu.h b/cpukit/score/cpu/i386/include/rtems/score/cpu.h index a12b0f2b92..3389530b28 100644 --- a/cpukit/score/cpu/i386/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/i386/include/rtems/score/cpu.h @@ -559,7 +559,7 @@ void _CPU_ISR_install_vector( CPU_ISR_handler *old_handler ); -void *_CPU_Thread_Idle_body( uintptr_t ignored ); +RTEMS_NO_RETURN void *_CPU_Thread_Idle_body( uintptr_t ignored ); /* * _CPU_Context_switch diff --git a/cpukit/score/cpu/lm32/include/rtems/score/cpu.h b/cpukit/score/cpu/lm32/include/rtems/score/cpu.h index 335d3407fe..2fb0dbadb7 100644 --- a/cpukit/score/cpu/lm32/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/lm32/include/rtems/score/cpu.h @@ -631,7 +631,7 @@ void _CPU_ISR_install_vector( /** @} */ -void *_CPU_Thread_Idle_body( uintptr_t ignored ); +RTEMS_NO_RETURN void *_CPU_Thread_Idle_body( uintptr_t ignored ); /** * @addtogroup RTEMSScoreCPUlm32Context diff --git a/cpukit/score/cpu/m68k/include/rtems/score/cpu.h b/cpukit/score/cpu/m68k/include/rtems/score/cpu.h index ae3194b9bb..227395c386 100644 --- a/cpukit/score/cpu/m68k/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/m68k/include/rtems/score/cpu.h @@ -419,7 +419,7 @@ void _CPU_Context_Initialize( /* end of Context handler macros */ -void *_CPU_Thread_Idle_body( uintptr_t ignored ); +RTEMS_NO_RETURN void *_CPU_Thread_Idle_body( uintptr_t ignored ); #define CPU_USE_LIBC_INIT_FINI_ARRAY FALSE diff --git a/cpukit/score/cpu/microblaze/include/rtems/score/cpu.h b/cpukit/score/cpu/microblaze/include/rtems/score/cpu.h index 3d865732d6..f95406cfe7 100644 --- a/cpukit/score/cpu/microblaze/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/microblaze/include/rtems/score/cpu.h @@ -451,7 +451,7 @@ uint32_t _CPU_Counter_frequency( void ); CPU_Counter_ticks _CPU_Counter_read( void ); -void *_CPU_Thread_Idle_body( uintptr_t ignored ); +RTEMS_NO_RETURN void *_CPU_Thread_Idle_body( uintptr_t ignored ); void bsp_interrupt_dispatch( uint32_t source ); diff --git a/cpukit/score/cpu/mips/include/rtems/score/cpu.h b/cpukit/score/cpu/mips/include/rtems/score/cpu.h index 447a384c88..e5680f51a5 100644 --- a/cpukit/score/cpu/mips/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/mips/include/rtems/score/cpu.h @@ -745,7 +745,7 @@ extern void mips_break( int error ); void _CPU_Initialize(void); -void *_CPU_Thread_Idle_body( uintptr_t ignored ); +RTEMS_NO_RETURN void *_CPU_Thread_Idle_body( uintptr_t ignored ); /* * _CPU_Context_switch diff --git a/cpukit/score/cpu/moxie/include/rtems/score/cpu.h b/cpukit/score/cpu/moxie/include/rtems/score/cpu.h index cc1900a852..d2270572f0 100644 --- a/cpukit/score/cpu/moxie/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/moxie/include/rtems/score/cpu.h @@ -435,7 +435,7 @@ void _CPU_ISR_install_vector( CPU_ISR_handler *old_handler ); -void *_CPU_Thread_Idle_body( uintptr_t ); +RTEMS_NO_RETURN void *_CPU_Thread_Idle_body( uintptr_t ); /* * _CPU_Context_switch diff --git a/cpukit/score/cpu/nios2/include/rtems/score/cpu.h b/cpukit/score/cpu/nios2/include/rtems/score/cpu.h index a58e7bca06..4e4705dcd2 100644 --- a/cpukit/score/cpu/nios2/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/nios2/include/rtems/score/cpu.h @@ -322,7 +322,7 @@ void _CPU_ISR_install_vector( CPU_ISR_handler *old_handler ); -void *_CPU_Thread_Idle_body( uintptr_t ignored ); +RTEMS_NO_RETURN void *_CPU_Thread_Idle_body( uintptr_t ignored ); void _CPU_Context_switch( Context_Control *run, Context_Control *heir ); diff --git a/cpukit/score/cpu/no_cpu/cpuidle.c b/cpukit/score/cpu/no_cpu/cpuidle.c index dbaf109905..542fa496ee 100644 --- a/cpukit/score/cpu/no_cpu/cpuidle.c +++ b/cpukit/score/cpu/no_cpu/cpuidle.c @@ -52,6 +52,4 @@ void *_CPU_Thread_Idle_body( uintptr_t ignored ) while ( true ) { /* Do nothing */ } - - return NULL; } diff --git a/cpukit/score/cpu/no_cpu/include/rtems/score/cpu.h b/cpukit/score/cpu/no_cpu/include/rtems/score/cpu.h index 9ef6f43eb9..a1beafd116 100644 --- a/cpukit/score/cpu/no_cpu/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/no_cpu/include/rtems/score/cpu.h @@ -1043,7 +1043,7 @@ void _CPU_ISR_install_vector( * * XXX document implementation including references if appropriate */ -void *_CPU_Thread_Idle_body( uintptr_t ignored ); +RTEMS_NO_RETURN void *_CPU_Thread_Idle_body( uintptr_t ignored ); /** * @brief Performs a context switch from the executing thread to the heir diff --git a/cpukit/score/cpu/or1k/include/rtems/score/cpu.h b/cpukit/score/cpu/or1k/include/rtems/score/cpu.h index ce1aa301b3..305833ae64 100644 --- a/cpukit/score/cpu/or1k/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/or1k/include/rtems/score/cpu.h @@ -481,7 +481,7 @@ static inline void _CPU_ISR_install_vector( ); } -void *_CPU_Thread_Idle_body( uintptr_t ignored ); +RTEMS_NO_RETURN void *_CPU_Thread_Idle_body( uintptr_t ignored ); /* * _CPU_Context_switch diff --git a/cpukit/score/cpu/powerpc/include/rtems/score/cpu.h b/cpukit/score/cpu/powerpc/include/rtems/score/cpu.h index 6f2fe491e9..1c92ae5227 100644 --- a/cpukit/score/cpu/powerpc/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/powerpc/include/rtems/score/cpu.h @@ -912,7 +912,7 @@ void _CPU_Context_Initialize( void _CPU_Initialize(void); -void *_CPU_Thread_Idle_body( uintptr_t ignored ); +RTEMS_NO_RETURN void *_CPU_Thread_Idle_body( uintptr_t ignored ); /* * _CPU_Context_switch diff --git a/cpukit/score/cpu/riscv/cpu.c b/cpukit/score/cpu/riscv/cpu.c index 74a716a3b2..3c2939306d 100644 --- a/cpukit/score/cpu/riscv/cpu.c +++ b/cpukit/score/cpu/riscv/cpu.c @@ -195,6 +195,4 @@ void *_CPU_Thread_Idle_body( uintptr_t ignored ) while ( true ) { __asm__ volatile ( "wfi" ); } - - return NULL; } diff --git a/cpukit/score/cpu/riscv/include/rtems/score/cpu.h b/cpukit/score/cpu/riscv/include/rtems/score/cpu.h index e342e7d4af..3ff4da85d3 100644 --- a/cpukit/score/cpu/riscv/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/riscv/include/rtems/score/cpu.h @@ -375,7 +375,7 @@ void _CPU_Initialize( void ); -void *_CPU_Thread_Idle_body( uintptr_t ignored ); +RTEMS_NO_RETURN void *_CPU_Thread_Idle_body( uintptr_t ignored ); /* * _CPU_Context_switch diff --git a/cpukit/score/cpu/sh/include/rtems/score/cpu.h b/cpukit/score/cpu/sh/include/rtems/score/cpu.h index f2b59a8713..8c73ae13ba 100644 --- a/cpukit/score/cpu/sh/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/sh/include/rtems/score/cpu.h @@ -523,7 +523,7 @@ void _CPU_ISR_install_vector( CPU_ISR_handler *old_handler ); -void *_CPU_Thread_Idle_body( uintptr_t ignored ); +RTEMS_NO_RETURN void *_CPU_Thread_Idle_body( uintptr_t ignored ); /* * _CPU_Context_switch diff --git a/cpukit/score/cpu/sparc/include/rtems/score/cpu.h b/cpukit/score/cpu/sparc/include/rtems/score/cpu.h index a21cef371f..6e9bc687ce 100644 --- a/cpukit/score/cpu/sparc/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/sparc/include/rtems/score/cpu.h @@ -963,7 +963,7 @@ void _CPU_ISR_install_vector( CPU_ISR_handler *old_handler ); -void *_CPU_Thread_Idle_body( uintptr_t ignored ); +RTEMS_NO_RETURN void *_CPU_Thread_Idle_body( uintptr_t ignored ); /** * @brief SPARC specific context switch. diff --git a/cpukit/score/cpu/sparc64/include/rtems/score/cpu.h b/cpukit/score/cpu/sparc64/include/rtems/score/cpu.h index 90ffe96341..a0f11a9d7a 100644 --- a/cpukit/score/cpu/sparc64/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/sparc64/include/rtems/score/cpu.h @@ -844,7 +844,7 @@ void _CPU_ISR_install_vector( CPU_ISR_handler *old_handler ); -void *_CPU_Thread_Idle_body( uintptr_t ignored ); +RTEMS_NO_RETURN void *_CPU_Thread_Idle_body( uintptr_t ignored ); /* * _CPU_Context_switch diff --git a/cpukit/score/cpu/v850/include/rtems/score/cpu.h b/cpukit/score/cpu/v850/include/rtems/score/cpu.h index 00addf0bc6..e8574b91a4 100644 --- a/cpukit/score/cpu/v850/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/v850/include/rtems/score/cpu.h @@ -498,7 +498,7 @@ void _CPU_Context_Initialize( */ void _CPU_Initialize(void); -void *_CPU_Thread_Idle_body( uintptr_t ignored ); +RTEMS_NO_RETURN void *_CPU_Thread_Idle_body( uintptr_t ignored ); /** * @addtogroup RTEMSScoreCPUV850CPUContext diff --git a/cpukit/score/cpu/x86_64/include/rtems/score/cpu.h b/cpukit/score/cpu/x86_64/include/rtems/score/cpu.h index f57fd1aeea..ef757a0618 100644 --- a/cpukit/score/cpu/x86_64/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/x86_64/include/rtems/score/cpu.h @@ -275,7 +275,7 @@ void _CPU_Context_Initialize( void _CPU_Initialize(void); -void *_CPU_Thread_Idle_body( uintptr_t ignored ); +RTEMS_NO_RETURN void *_CPU_Thread_Idle_body( uintptr_t ignored ); void _CPU_Context_switch( Context_Control *run,