summaryrefslogtreecommitdiffstats
path: root/cpukit/score/src
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-05-17 13:35:42 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-05-18 08:02:50 +0200
commitd45f87cf3599b3614ea4b126728aedeb51737695 (patch)
treeccd13083533329b75b02e80627948cc5fea77f94 /cpukit/score/src
parentscore: Move _Thread_queue_Queue_get_name_and_id() (diff)
downloadrtems-d45f87cf3599b3614ea4b126728aedeb51737695.tar.bz2
score: Add _CPU_Context_switch_no_return()
The __builtin_unreachable() cannot be used with current GCC versions to tell the compiler that a function does not return to the caller, see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99151 Add a no return variant of _CPU_Context_switch() to avoid generation of dead code in _Thread_Start_multitasking() if RTEMS was built with SMP support enabled.
Diffstat (limited to 'cpukit/score/src')
-rw-r--r--cpukit/score/src/threadstartmultitasking.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/cpukit/score/src/threadstartmultitasking.c b/cpukit/score/src/threadstartmultitasking.c
index a0b465a226..094a535394 100644
--- a/cpukit/score/src/threadstartmultitasking.c
+++ b/cpukit/score/src/threadstartmultitasking.c
@@ -59,7 +59,7 @@ void _Thread_Start_multitasking( void )
* executing to the currently selected heir thread.
*/
_CPU_Context_Set_is_executing( &trash, true );
- _CPU_Context_switch( &trash, &heir->Registers );
+ _CPU_Context_switch_no_return( &trash, &heir->Registers );
RTEMS_UNREACHABLE();
}
#else