From d7a48e1b259316533a5c775e27934760e1fcd313 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Tue, 6 Oct 2020 07:39:44 +0200 Subject: rtems: Improve RTEMS_NO_RETURN attribute Provide RTEMS_NO_RETURN also in case RTEMS_DEBUG is defined to prevent errors like this: error: no return statement in function returning non-void [-Werror=return-type] Use C11 and C++11 standard means to declare a no-return function. Close #4122. --- cpukit/score/cpu/aarch64/include/rtems/score/cpu.h | 3 +-- cpukit/score/cpu/arm/include/rtems/score/cpu.h | 6 ++---- cpukit/score/cpu/bfin/include/rtems/score/cpu.h | 4 +--- cpukit/score/cpu/i386/include/rtems/score/cpu.h | 7 ++----- cpukit/score/cpu/lm32/include/rtems/score/cpu.h | 4 +--- cpukit/score/cpu/m68k/include/rtems/score/cpu.h | 4 ++-- cpukit/score/cpu/mips/include/rtems/score/cpu.h | 4 +--- cpukit/score/cpu/moxie/include/rtems/score/cpu.h | 4 +--- cpukit/score/cpu/nios2/include/rtems/score/cpu.h | 7 ++----- cpukit/score/cpu/no_cpu/include/rtems/score/cpu.h | 4 +--- cpukit/score/cpu/or1k/include/rtems/score/cpu.h | 4 +--- cpukit/score/cpu/powerpc/include/rtems/score/cpu.h | 4 +--- cpukit/score/cpu/riscv/include/rtems/score/cpu.h | 6 ++---- cpukit/score/cpu/sh/include/rtems/score/cpu.h | 4 +--- cpukit/score/cpu/sparc/include/rtems/score/cpu.h | 7 ++----- cpukit/score/cpu/sparc/include/rtems/score/sparc.h | 6 ++++-- cpukit/score/cpu/sparc64/include/rtems/score/cpu.h | 4 +--- cpukit/score/cpu/v850/include/rtems/score/cpu.h | 4 +--- cpukit/score/cpu/x86_64/include/rtems/score/cpu.h | 4 +--- 19 files changed, 28 insertions(+), 62 deletions(-) (limited to 'cpukit/score') diff --git a/cpukit/score/cpu/aarch64/include/rtems/score/cpu.h b/cpukit/score/cpu/aarch64/include/rtems/score/cpu.h index da2140a2a8..dc94e59831 100644 --- a/cpukit/score/cpu/aarch64/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/aarch64/include/rtems/score/cpu.h @@ -322,8 +322,7 @@ void _CPU_ISR_install_vector( */ void _CPU_Context_switch( Context_Control *run, Context_Control *heir ); -void _CPU_Context_restore( Context_Control *new_context ) - RTEMS_NO_RETURN; +RTEMS_NO_RETURN void _CPU_Context_restore( Context_Control *new_context ); #ifdef RTEMS_SMP uint32_t _CPU_SMP_Initialize( void ); diff --git a/cpukit/score/cpu/arm/include/rtems/score/cpu.h b/cpukit/score/cpu/arm/include/rtems/score/cpu.h index b90fb1f394..8a8e8cc617 100644 --- a/cpukit/score/cpu/arm/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/arm/include/rtems/score/cpu.h @@ -456,12 +456,10 @@ void _CPU_ISR_install_vector( */ void _CPU_Context_switch( Context_Control *run, Context_Control *heir ); -void _CPU_Context_restore( Context_Control *new_context ) - RTEMS_NO_RETURN; +RTEMS_NO_RETURN void _CPU_Context_restore( Context_Control *new_context ); #if defined(ARM_MULTILIB_ARCH_V7M) - void _ARMV7M_Start_multitasking( Context_Control *heir ) - RTEMS_NO_RETURN; + RTEMS_NO_RETURN void _ARMV7M_Start_multitasking( Context_Control *heir ); #define _CPU_Start_multitasking _ARMV7M_Start_multitasking #endif diff --git a/cpukit/score/cpu/bfin/include/rtems/score/cpu.h b/cpukit/score/cpu/bfin/include/rtems/score/cpu.h index 3b0f0bece3..44be6d7d54 100644 --- a/cpukit/score/cpu/bfin/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/bfin/include/rtems/score/cpu.h @@ -571,9 +571,7 @@ void _CPU_Context_switch( * * XXX document implementation including references if appropriate */ -void _CPU_Context_restore( - Context_Control *new_context -) RTEMS_NO_RETURN; +RTEMS_NO_RETURN void _CPU_Context_restore( Context_Control *new_context ); /** @} */ diff --git a/cpukit/score/cpu/i386/include/rtems/score/cpu.h b/cpukit/score/cpu/i386/include/rtems/score/cpu.h index 632bf5ff38..0cb4590087 100644 --- a/cpukit/score/cpu/i386/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/i386/include/rtems/score/cpu.h @@ -496,8 +496,7 @@ void _CPU_Context_Initialize( * + disable interrupts and halt the CPU */ -extern void _CPU_Fatal_halt(uint32_t source, uint32_t error) - RTEMS_NO_RETURN; +RTEMS_NO_RETURN void _CPU_Fatal_halt( uint32_t source, uint32_t error ); #endif /* ASM */ @@ -582,9 +581,7 @@ void _CPU_Context_switch( * efficient manner and avoid stack conflicts. */ -void _CPU_Context_restore( - Context_Control *new_context -) RTEMS_NO_RETURN; +RTEMS_NO_RETURN void _CPU_Context_restore( Context_Control *new_context ); /* * _CPU_Context_save_fp diff --git a/cpukit/score/cpu/lm32/include/rtems/score/cpu.h b/cpukit/score/cpu/lm32/include/rtems/score/cpu.h index 8e702992c1..7cf6359419 100644 --- a/cpukit/score/cpu/lm32/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/lm32/include/rtems/score/cpu.h @@ -702,9 +702,7 @@ void _CPU_Context_switch( * * XXX document implementation including references if appropriate */ -void _CPU_Context_restore( - Context_Control *new_context -) RTEMS_NO_RETURN; +RTEMS_NO_RETURN void _CPU_Context_restore( Context_Control *new_context ); /** @} */ diff --git a/cpukit/score/cpu/m68k/include/rtems/score/cpu.h b/cpukit/score/cpu/m68k/include/rtems/score/cpu.h index 777fbfeb30..5c1df94fc5 100644 --- a/cpukit/score/cpu/m68k/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/m68k/include/rtems/score/cpu.h @@ -595,9 +595,9 @@ void _CPU_Context_switch( Context_Control *heir ); -void _CPU_Context_Restart_self( +RTEMS_NO_RETURN void _CPU_Context_Restart_self( Context_Control *the_context -) RTEMS_NO_RETURN; +); /* * _CPU_Context_save_fp diff --git a/cpukit/score/cpu/mips/include/rtems/score/cpu.h b/cpukit/score/cpu/mips/include/rtems/score/cpu.h index 2b662cd549..04d33f5658 100644 --- a/cpukit/score/cpu/mips/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/mips/include/rtems/score/cpu.h @@ -774,9 +774,7 @@ void _CPU_Context_switch( * NOTE: May be unnecessary to reload some registers. */ -void _CPU_Context_restore( - Context_Control *new_context -) RTEMS_NO_RETURN; +RTEMS_NO_RETURN void _CPU_Context_restore( Context_Control *new_context ); /* * _CPU_Context_save_fp diff --git a/cpukit/score/cpu/moxie/include/rtems/score/cpu.h b/cpukit/score/cpu/moxie/include/rtems/score/cpu.h index c47e414f92..c0a41c9db6 100644 --- a/cpukit/score/cpu/moxie/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/moxie/include/rtems/score/cpu.h @@ -478,9 +478,7 @@ void _CPU_Context_switch( * * XXX */ -void _CPU_Context_restore( - Context_Control *new_context -) RTEMS_NO_RETURN; +RTEMS_NO_RETURN void _CPU_Context_restore( Context_Control *new_context ); /** * @brief The set of registers that specifies the complete processor state. diff --git a/cpukit/score/cpu/nios2/include/rtems/score/cpu.h b/cpukit/score/cpu/nios2/include/rtems/score/cpu.h index 5528561d1c..5fffed646e 100644 --- a/cpukit/score/cpu/nios2/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/nios2/include/rtems/score/cpu.h @@ -290,8 +290,7 @@ void _CPU_Context_Initialize( #define _CPU_Context_Restart_self( _the_context ) \ _CPU_Context_restore( (_the_context) ); -void _CPU_Fatal_halt( uint32_t _source, uint32_t _error ) - RTEMS_NO_RETURN; +RTEMS_NO_RETURN void _CPU_Fatal_halt( uint32_t _source, uint32_t _error ); /** * @brief CPU initialization. @@ -310,9 +309,7 @@ void *_CPU_Thread_Idle_body( uintptr_t ignored ); void _CPU_Context_switch( Context_Control *run, Context_Control *heir ); -void _CPU_Context_restore( - Context_Control *new_context -) RTEMS_NO_RETURN; +RTEMS_NO_RETURN void _CPU_Context_restore( Context_Control *new_context ); void _CPU_Exception_frame_print( const CPU_Exception_frame *frame ); 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 50313bbd61..ea69a5b972 100644 --- a/cpukit/score/cpu/no_cpu/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/no_cpu/include/rtems/score/cpu.h @@ -1085,9 +1085,7 @@ void _CPU_Context_switch( * * XXX document implementation including references if appropriate */ -void _CPU_Context_restore( - Context_Control *new_context -) RTEMS_NO_RETURN; +RTEMS_NO_RETURN void _CPU_Context_restore( Context_Control *new_context ); /** * @addtogroup RTEMSScoreCPUExampleContext diff --git a/cpukit/score/cpu/or1k/include/rtems/score/cpu.h b/cpukit/score/cpu/or1k/include/rtems/score/cpu.h index c14388a804..c1f94a71af 100644 --- a/cpukit/score/cpu/or1k/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/or1k/include/rtems/score/cpu.h @@ -527,9 +527,7 @@ void _CPU_Context_switch( * */ -void _CPU_Context_restore( - Context_Control *new_context -) RTEMS_NO_RETURN; +RTEMS_NO_RETURN void _CPU_Context_restore( Context_Control *new_context ); /* * _CPU_Context_save_fp diff --git a/cpukit/score/cpu/powerpc/include/rtems/score/cpu.h b/cpukit/score/cpu/powerpc/include/rtems/score/cpu.h index 33d8755ba4..a40b378b6d 100644 --- a/cpukit/score/cpu/powerpc/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/powerpc/include/rtems/score/cpu.h @@ -932,9 +932,7 @@ void _CPU_Context_switch( * NOTE: May be unnecessary to reload some registers. */ -void _CPU_Context_restore( - Context_Control *new_context -) RTEMS_NO_RETURN; +RTEMS_NO_RETURN void _CPU_Context_restore( Context_Control *new_context ); /* * _CPU_Context_save_fp diff --git a/cpukit/score/cpu/riscv/include/rtems/score/cpu.h b/cpukit/score/cpu/riscv/include/rtems/score/cpu.h index 501973a6dc..38eb92394d 100644 --- a/cpukit/score/cpu/riscv/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/riscv/include/rtems/score/cpu.h @@ -213,7 +213,7 @@ void _CPU_Context_Initialize( #define _CPU_Context_Restart_self( _the_context ) \ _CPU_Context_restore( (_the_context) ) -extern void _CPU_Fatal_halt(uint32_t source, uint32_t error) RTEMS_NO_RETURN; +RTEMS_NO_RETURN void _CPU_Fatal_halt( uint32_t source, uint32_t error ); #define CPU_USE_GENERIC_BITFIELD_CODE TRUE @@ -393,9 +393,7 @@ void _CPU_Context_switch( * */ -void _CPU_Context_restore( - Context_Control *new_context -) RTEMS_NO_RETURN; +RTEMS_NO_RETURN void _CPU_Context_restore( Context_Control *new_context ); /* The following routine swaps the endian format of an unsigned int. * It must be static because it is referenced indirectly. diff --git a/cpukit/score/cpu/sh/include/rtems/score/cpu.h b/cpukit/score/cpu/sh/include/rtems/score/cpu.h index 9264479153..0782021b2f 100644 --- a/cpukit/score/cpu/sh/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/sh/include/rtems/score/cpu.h @@ -586,9 +586,7 @@ void _CPU_Context_switch( * efficient manner. It may simply be a label in _CPU_Context_switch. */ -void _CPU_Context_restore( - Context_Control *new_context -) RTEMS_NO_RETURN; +RTEMS_NO_RETURN void _CPU_Context_restore( Context_Control *new_context ); /* * @brief This routine saves the floating point context passed to it. diff --git a/cpukit/score/cpu/sparc/include/rtems/score/cpu.h b/cpukit/score/cpu/sparc/include/rtems/score/cpu.h index 13782f2f12..e2604bb76f 100644 --- a/cpukit/score/cpu/sparc/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/sparc/include/rtems/score/cpu.h @@ -912,8 +912,7 @@ void _CPU_Context_Initialize( * location or a register, optionally disables interrupts, and * halts/stops the CPU. */ -extern void _CPU_Fatal_halt(uint32_t source, uint32_t error) - RTEMS_NO_RETURN; +RTEMS_NO_RETURN void _CPU_Fatal_halt( uint32_t source, uint32_t error ); /* end of Fatal Error manager macros */ @@ -1001,9 +1000,7 @@ void _CPU_Context_switch( * * @param[in] new_context is the context to restore */ -void _CPU_Context_restore( - Context_Control *new_context -) RTEMS_NO_RETURN; +RTEMS_NO_RETURN void _CPU_Context_restore( Context_Control *new_context ); #if defined(RTEMS_SMP) uint32_t _CPU_SMP_Initialize( void ); diff --git a/cpukit/score/cpu/sparc/include/rtems/score/sparc.h b/cpukit/score/cpu/sparc/include/rtems/score/sparc.h index 4846520b46..db659cc1fa 100644 --- a/cpukit/score/cpu/sparc/include/rtems/score/sparc.h +++ b/cpukit/score/cpu/sparc/include/rtems/score/sparc.h @@ -365,8 +365,10 @@ static inline void sparc_enable_interrupts(uint32_t psr) * @param[in] exitcode1 Primary exit code stored in CPU g2 register after exit * @param[in] exitcode2 Primary exit code stored in CPU g3 register after exit */ -void sparc_syscall_exit(uint32_t exitcode1, uint32_t exitcode2) - RTEMS_NO_RETURN; +RTEMS_NO_RETURN void sparc_syscall_exit( + uint32_t exitcode1, + uint32_t exitcode2 +); /** * @brief SPARC flash processor interrupts. diff --git a/cpukit/score/cpu/sparc64/include/rtems/score/cpu.h b/cpukit/score/cpu/sparc64/include/rtems/score/cpu.h index 2dd5cb194f..2701298733 100644 --- a/cpukit/score/cpu/sparc64/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/sparc64/include/rtems/score/cpu.h @@ -877,9 +877,7 @@ void _CPU_Context_switch( * efficient manner. */ -void _CPU_Context_restore( - Context_Control *new_context -) RTEMS_NO_RETURN; +RTEMS_NO_RETURN void _CPU_Context_restore( Context_Control *new_context ); /* * _CPU_Context_save_fp diff --git a/cpukit/score/cpu/v850/include/rtems/score/cpu.h b/cpukit/score/cpu/v850/include/rtems/score/cpu.h index a538789a58..a648931fb9 100644 --- a/cpukit/score/cpu/v850/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/v850/include/rtems/score/cpu.h @@ -543,9 +543,7 @@ void _CPU_Context_switch( * * This is implemented in assembly on the v850. */ -void _CPU_Context_restore( - Context_Control *new_context -) RTEMS_NO_RETURN; +RTEMS_NO_RETURN void _CPU_Context_restore( Context_Control *new_context ); /* XXX this should be possible to remove */ #if 0 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 12ae14e229..80dbc25214 100644 --- a/cpukit/score/cpu/x86_64/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/x86_64/include/rtems/score/cpu.h @@ -280,9 +280,7 @@ void _CPU_Context_switch( Context_Control *heir ); -void _CPU_Context_restore( - Context_Control *new_context -) RTEMS_NO_RETURN; +RTEMS_NO_RETURN void _CPU_Context_restore( Context_Control *new_context ); typedef struct { uint32_t processor_state_register; -- cgit v1.2.3