From 6bf6efdc7e0d886eff182bea9262274bfddadf26 Mon Sep 17 00:00:00 2001 From: Caoruihong Date: Fri, 16 Apr 2021 19:24:24 +0800 Subject: [PATCH] add noreturn attribute for LOS_Panic LOS_Reboot and HalSysExit Change-Id: I65bbdd3d60aa754a389f9371649a96483d2a6f8a --- kernel/arch/include/los_context.h | 2 +- kernel/include/los_task.h | 4 ++-- utils/los_compiler.h | 12 ++++++++++++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/kernel/arch/include/los_context.h b/kernel/arch/include/los_context.h index 058d7104..493f33ff 100644 --- a/kernel/arch/include/los_context.h +++ b/kernel/arch/include/los_context.h @@ -82,7 +82,7 @@ extern VOID *HalTskStackInit(UINT32 taskID, UINT32 stackSize, VOID *topStack); * * @see None. */ -LITE_OS_SEC_TEXT_MINOR VOID HalSysExit(VOID); +LITE_OS_SEC_TEXT_MINOR VOID HalSysExit(VOID) NORETURN; /* * * @ingroup los_context diff --git a/kernel/include/los_task.h b/kernel/include/los_task.h index 73fb1b12..0f0d85c0 100644 --- a/kernel/include/los_task.h +++ b/kernel/include/los_task.h @@ -501,8 +501,8 @@ extern VOID LOS_Msleep(UINT32 mSecs); * @see */ extern UINT32 LOS_Start(VOID); -extern VOID LOS_Reboot(VOID); -extern VOID LOS_Panic(const CHAR *fmt, ...); +extern VOID LOS_Reboot(VOID) NORETURN; +extern VOID LOS_Panic(const CHAR *fmt, ...) NORETURN; /** diff --git a/utils/los_compiler.h b/utils/los_compiler.h index 94d08417..6d1579ca 100755 --- a/utils/los_compiler.h +++ b/utils/los_compiler.h @@ -70,6 +70,10 @@ extern "C" { #define CLZ __iar_builtin_CLZ #endif +#ifndef NORETURN +#define NORETURN __attribute__ ((__noreturn__)) +#endif + /* for ARM Compiler */ #elif defined(__CC_ARM) @@ -97,6 +101,10 @@ extern "C" { #define CLZ __clz #endif +#ifndef NORETURN +#define NORETURN __declspec(noreturn) +#endif + #pragma anon_unions /* for GNU Compiler */ @@ -126,6 +134,10 @@ extern "C" { #define CLZ __builtin_clz #endif +#ifndef NORETURN +#define NORETURN __attribute__ ((__noreturn__)) +#endif + #else #error Unknown compiler. #endif