Use portTASK_FUNCTION_PROTO to replace portNORETURN (#688)
* Use portTASK_FUNCTION_PROTO to replace portNORETURN
diff --git a/include/FreeRTOS.h b/include/FreeRTOS.h
index 44d5efd..b7d5054 100644
--- a/include/FreeRTOS.h
+++ b/include/FreeRTOS.h
@@ -895,10 +895,6 @@
#define portDONT_DISCARD
#endif
-#ifndef portNORETURN
- #define portNORETURN
-#endif
-
#ifndef configUSE_TIME_SLICING
#define configUSE_TIME_SLICING 1
#endif
diff --git a/portable/ARMv8M/non_secure/portable/GCC/ARM_CM23/portmacro.h b/portable/ARMv8M/non_secure/portable/GCC/ARM_CM23/portmacro.h
index 746f734..5fd94c1 100644
--- a/portable/ARMv8M/non_secure/portable/GCC/ARM_CM23/portmacro.h
+++ b/portable/ARMv8M/non_secure/portable/GCC/ARM_CM23/portmacro.h
@@ -51,7 +51,6 @@
#define portARCH_NAME "Cortex-M23"
#define portHAS_BASEPRI 0
#define portDONT_DISCARD __attribute__( ( used ) )
-#define portNORETURN __attribute__( ( noreturn ) )
/*-----------------------------------------------------------*/
/* ARMv8-M common port configurations. */
diff --git a/portable/ARMv8M/non_secure/portable/GCC/ARM_CM23_NTZ/portmacro.h b/portable/ARMv8M/non_secure/portable/GCC/ARM_CM23_NTZ/portmacro.h
index 746f734..5fd94c1 100644
--- a/portable/ARMv8M/non_secure/portable/GCC/ARM_CM23_NTZ/portmacro.h
+++ b/portable/ARMv8M/non_secure/portable/GCC/ARM_CM23_NTZ/portmacro.h
@@ -51,7 +51,6 @@
#define portARCH_NAME "Cortex-M23"
#define portHAS_BASEPRI 0
#define portDONT_DISCARD __attribute__( ( used ) )
-#define portNORETURN __attribute__( ( noreturn ) )
/*-----------------------------------------------------------*/
/* ARMv8-M common port configurations. */
diff --git a/portable/ARMv8M/non_secure/portable/GCC/ARM_CM33/portmacro.h b/portable/ARMv8M/non_secure/portable/GCC/ARM_CM33/portmacro.h
index 19da9b0..b9efb07 100644
--- a/portable/ARMv8M/non_secure/portable/GCC/ARM_CM33/portmacro.h
+++ b/portable/ARMv8M/non_secure/portable/GCC/ARM_CM33/portmacro.h
@@ -51,7 +51,6 @@
#define portARCH_NAME "Cortex-M33"
#define portHAS_BASEPRI 1
#define portDONT_DISCARD __attribute__( ( used ) )
-#define portNORETURN __attribute__( ( noreturn ) )
/*-----------------------------------------------------------*/
/* ARMv8-M common port configurations. */
diff --git a/portable/ARMv8M/non_secure/portable/GCC/ARM_CM33_NTZ/portmacro.h b/portable/ARMv8M/non_secure/portable/GCC/ARM_CM33_NTZ/portmacro.h
index 19da9b0..b9efb07 100644
--- a/portable/ARMv8M/non_secure/portable/GCC/ARM_CM33_NTZ/portmacro.h
+++ b/portable/ARMv8M/non_secure/portable/GCC/ARM_CM33_NTZ/portmacro.h
@@ -51,7 +51,6 @@
#define portARCH_NAME "Cortex-M33"
#define portHAS_BASEPRI 1
#define portDONT_DISCARD __attribute__( ( used ) )
-#define portNORETURN __attribute__( ( noreturn ) )
/*-----------------------------------------------------------*/
/* ARMv8-M common port configurations. */
diff --git a/portable/ARMv8M/non_secure/portable/GCC/ARM_CM35P/portmacro.h b/portable/ARMv8M/non_secure/portable/GCC/ARM_CM35P/portmacro.h
index cc64345..9545737 100644
--- a/portable/ARMv8M/non_secure/portable/GCC/ARM_CM35P/portmacro.h
+++ b/portable/ARMv8M/non_secure/portable/GCC/ARM_CM35P/portmacro.h
@@ -51,7 +51,6 @@
#define portARCH_NAME "Cortex-M35P"
#define portHAS_BASEPRI 1
#define portDONT_DISCARD __attribute__( ( used ) )
-#define portNORETURN __attribute__( ( noreturn ) )
/*-----------------------------------------------------------*/
/* ARMv8-M common port configurations. */
diff --git a/portable/ARMv8M/non_secure/portable/GCC/ARM_CM55/portmacro.h b/portable/ARMv8M/non_secure/portable/GCC/ARM_CM55/portmacro.h
index c9bad40..12bb5e7 100644
--- a/portable/ARMv8M/non_secure/portable/GCC/ARM_CM55/portmacro.h
+++ b/portable/ARMv8M/non_secure/portable/GCC/ARM_CM55/portmacro.h
@@ -56,7 +56,6 @@
#define portARCH_NAME "Cortex-M55"
#define portHAS_BASEPRI 1
#define portDONT_DISCARD __attribute__( ( used ) )
-#define portNORETURN __attribute__( ( noreturn ) )
/*-----------------------------------------------------------*/
/* ARMv8-M common port configurations. */
diff --git a/portable/ARMv8M/non_secure/portable/GCC/ARM_CM85/portmacro.h b/portable/ARMv8M/non_secure/portable/GCC/ARM_CM85/portmacro.h
index c45dd21..99f913d 100644
--- a/portable/ARMv8M/non_secure/portable/GCC/ARM_CM85/portmacro.h
+++ b/portable/ARMv8M/non_secure/portable/GCC/ARM_CM85/portmacro.h
@@ -56,7 +56,6 @@
#define portARCH_NAME "Cortex-M85"
#define portHAS_BASEPRI 1
#define portDONT_DISCARD __attribute__( ( used ) )
-#define portNORETURN __attribute__( ( noreturn ) )
/*-----------------------------------------------------------*/
/* ARMv8-M common port configurations. */
diff --git a/portable/GCC/ARM_CM0/portmacro.h b/portable/GCC/ARM_CM0/portmacro.h
index dc7f545..14375bf 100644
--- a/portable/GCC/ARM_CM0/portmacro.h
+++ b/portable/GCC/ARM_CM0/portmacro.h
@@ -79,7 +79,6 @@
#define portTICK_PERIOD_MS ( ( TickType_t ) 1000 / configTICK_RATE_HZ )
#define portBYTE_ALIGNMENT 8
#define portDONT_DISCARD __attribute__( ( used ) )
-#define portNORETURN __attribute__( ( noreturn ) )
/*-----------------------------------------------------------*/
diff --git a/portable/GCC/ARM_CM23/non_secure/portmacro.h b/portable/GCC/ARM_CM23/non_secure/portmacro.h
index 746f734..5fd94c1 100644
--- a/portable/GCC/ARM_CM23/non_secure/portmacro.h
+++ b/portable/GCC/ARM_CM23/non_secure/portmacro.h
@@ -51,7 +51,6 @@
#define portARCH_NAME "Cortex-M23"
#define portHAS_BASEPRI 0
#define portDONT_DISCARD __attribute__( ( used ) )
-#define portNORETURN __attribute__( ( noreturn ) )
/*-----------------------------------------------------------*/
/* ARMv8-M common port configurations. */
diff --git a/portable/GCC/ARM_CM23_NTZ/non_secure/portmacro.h b/portable/GCC/ARM_CM23_NTZ/non_secure/portmacro.h
index 746f734..5fd94c1 100644
--- a/portable/GCC/ARM_CM23_NTZ/non_secure/portmacro.h
+++ b/portable/GCC/ARM_CM23_NTZ/non_secure/portmacro.h
@@ -51,7 +51,6 @@
#define portARCH_NAME "Cortex-M23"
#define portHAS_BASEPRI 0
#define portDONT_DISCARD __attribute__( ( used ) )
-#define portNORETURN __attribute__( ( noreturn ) )
/*-----------------------------------------------------------*/
/* ARMv8-M common port configurations. */
diff --git a/portable/GCC/ARM_CM3/portmacro.h b/portable/GCC/ARM_CM3/portmacro.h
index 36e38f7..0ff96b8 100644
--- a/portable/GCC/ARM_CM3/portmacro.h
+++ b/portable/GCC/ARM_CM3/portmacro.h
@@ -79,7 +79,6 @@
#define portTICK_PERIOD_MS ( ( TickType_t ) 1000 / configTICK_RATE_HZ )
#define portBYTE_ALIGNMENT 8
#define portDONT_DISCARD __attribute__( ( used ) )
- #define portNORETURN __attribute__( ( noreturn ) )
/*-----------------------------------------------------------*/
/* Scheduler utilities. */
diff --git a/portable/GCC/ARM_CM33/non_secure/portmacro.h b/portable/GCC/ARM_CM33/non_secure/portmacro.h
index 19da9b0..b9efb07 100644
--- a/portable/GCC/ARM_CM33/non_secure/portmacro.h
+++ b/portable/GCC/ARM_CM33/non_secure/portmacro.h
@@ -51,7 +51,6 @@
#define portARCH_NAME "Cortex-M33"
#define portHAS_BASEPRI 1
#define portDONT_DISCARD __attribute__( ( used ) )
-#define portNORETURN __attribute__( ( noreturn ) )
/*-----------------------------------------------------------*/
/* ARMv8-M common port configurations. */
diff --git a/portable/GCC/ARM_CM33_NTZ/non_secure/portmacro.h b/portable/GCC/ARM_CM33_NTZ/non_secure/portmacro.h
index 19da9b0..b9efb07 100644
--- a/portable/GCC/ARM_CM33_NTZ/non_secure/portmacro.h
+++ b/portable/GCC/ARM_CM33_NTZ/non_secure/portmacro.h
@@ -51,7 +51,6 @@
#define portARCH_NAME "Cortex-M33"
#define portHAS_BASEPRI 1
#define portDONT_DISCARD __attribute__( ( used ) )
-#define portNORETURN __attribute__( ( noreturn ) )
/*-----------------------------------------------------------*/
/* ARMv8-M common port configurations. */
diff --git a/portable/GCC/ARM_CM35P/non_secure/portmacro.h b/portable/GCC/ARM_CM35P/non_secure/portmacro.h
index cc64345..9545737 100644
--- a/portable/GCC/ARM_CM35P/non_secure/portmacro.h
+++ b/portable/GCC/ARM_CM35P/non_secure/portmacro.h
@@ -51,7 +51,6 @@
#define portARCH_NAME "Cortex-M35P"
#define portHAS_BASEPRI 1
#define portDONT_DISCARD __attribute__( ( used ) )
-#define portNORETURN __attribute__( ( noreturn ) )
/*-----------------------------------------------------------*/
/* ARMv8-M common port configurations. */
diff --git a/portable/GCC/ARM_CM35P_NTZ/non_secure/portmacro.h b/portable/GCC/ARM_CM35P_NTZ/non_secure/portmacro.h
index cc64345..9545737 100644
--- a/portable/GCC/ARM_CM35P_NTZ/non_secure/portmacro.h
+++ b/portable/GCC/ARM_CM35P_NTZ/non_secure/portmacro.h
@@ -51,7 +51,6 @@
#define portARCH_NAME "Cortex-M35P"
#define portHAS_BASEPRI 1
#define portDONT_DISCARD __attribute__( ( used ) )
-#define portNORETURN __attribute__( ( noreturn ) )
/*-----------------------------------------------------------*/
/* ARMv8-M common port configurations. */
diff --git a/portable/GCC/ARM_CM3_MPU/portmacro.h b/portable/GCC/ARM_CM3_MPU/portmacro.h
index b15193f..e73447b 100644
--- a/portable/GCC/ARM_CM3_MPU/portmacro.h
+++ b/portable/GCC/ARM_CM3_MPU/portmacro.h
@@ -115,7 +115,6 @@
#define portTICK_PERIOD_MS ( ( TickType_t ) 1000 / configTICK_RATE_HZ )
#define portBYTE_ALIGNMENT 8
#define portDONT_DISCARD __attribute__( ( used ) )
- #define portNORETURN __attribute__( ( noreturn ) )
/*-----------------------------------------------------------*/
/* SVC numbers for various services. */
diff --git a/portable/GCC/ARM_CM4F/portmacro.h b/portable/GCC/ARM_CM4F/portmacro.h
index 443661a..532eefa 100644
--- a/portable/GCC/ARM_CM4F/portmacro.h
+++ b/portable/GCC/ARM_CM4F/portmacro.h
@@ -82,7 +82,6 @@
#define portTICK_PERIOD_MS ( ( TickType_t ) 1000 / configTICK_RATE_HZ )
#define portBYTE_ALIGNMENT 8
#define portDONT_DISCARD __attribute__( ( used ) )
- #define portNORETURN __attribute__( ( noreturn ) )
/*-----------------------------------------------------------*/
/* Scheduler utilities. */
diff --git a/portable/GCC/ARM_CM4_MPU/portmacro.h b/portable/GCC/ARM_CM4_MPU/portmacro.h
index df23d95..f3365d1 100644
--- a/portable/GCC/ARM_CM4_MPU/portmacro.h
+++ b/portable/GCC/ARM_CM4_MPU/portmacro.h
@@ -203,7 +203,6 @@
#define portTICK_PERIOD_MS ( ( TickType_t ) 1000 / configTICK_RATE_HZ )
#define portBYTE_ALIGNMENT 8
#define portDONT_DISCARD __attribute__( ( used ) )
-#define portNORETURN __attribute__( ( noreturn ) )
/*-----------------------------------------------------------*/
/* SVC numbers for various services. */
diff --git a/portable/GCC/ARM_CM55/non_secure/portmacro.h b/portable/GCC/ARM_CM55/non_secure/portmacro.h
index c9bad40..12bb5e7 100644
--- a/portable/GCC/ARM_CM55/non_secure/portmacro.h
+++ b/portable/GCC/ARM_CM55/non_secure/portmacro.h
@@ -56,7 +56,6 @@
#define portARCH_NAME "Cortex-M55"
#define portHAS_BASEPRI 1
#define portDONT_DISCARD __attribute__( ( used ) )
-#define portNORETURN __attribute__( ( noreturn ) )
/*-----------------------------------------------------------*/
/* ARMv8-M common port configurations. */
diff --git a/portable/GCC/ARM_CM55_NTZ/non_secure/portmacro.h b/portable/GCC/ARM_CM55_NTZ/non_secure/portmacro.h
index c9bad40..12bb5e7 100644
--- a/portable/GCC/ARM_CM55_NTZ/non_secure/portmacro.h
+++ b/portable/GCC/ARM_CM55_NTZ/non_secure/portmacro.h
@@ -56,7 +56,6 @@
#define portARCH_NAME "Cortex-M55"
#define portHAS_BASEPRI 1
#define portDONT_DISCARD __attribute__( ( used ) )
-#define portNORETURN __attribute__( ( noreturn ) )
/*-----------------------------------------------------------*/
/* ARMv8-M common port configurations. */
diff --git a/portable/GCC/ARM_CM7/r0p1/portmacro.h b/portable/GCC/ARM_CM7/r0p1/portmacro.h
index 82529f9..f433beb 100644
--- a/portable/GCC/ARM_CM7/r0p1/portmacro.h
+++ b/portable/GCC/ARM_CM7/r0p1/portmacro.h
@@ -79,7 +79,6 @@
#define portTICK_PERIOD_MS ( ( TickType_t ) 1000 / configTICK_RATE_HZ )
#define portBYTE_ALIGNMENT 8
#define portDONT_DISCARD __attribute__( ( used ) )
- #define portNORETURN __attribute__( ( noreturn ) )
/*-----------------------------------------------------------*/
/* Scheduler utilities. */
diff --git a/portable/GCC/ARM_CM85/non_secure/portmacro.h b/portable/GCC/ARM_CM85/non_secure/portmacro.h
index c45dd21..99f913d 100644
--- a/portable/GCC/ARM_CM85/non_secure/portmacro.h
+++ b/portable/GCC/ARM_CM85/non_secure/portmacro.h
@@ -56,7 +56,6 @@
#define portARCH_NAME "Cortex-M85"
#define portHAS_BASEPRI 1
#define portDONT_DISCARD __attribute__( ( used ) )
-#define portNORETURN __attribute__( ( noreturn ) )
/*-----------------------------------------------------------*/
/* ARMv8-M common port configurations. */
diff --git a/portable/GCC/ARM_CM85_NTZ/non_secure/portmacro.h b/portable/GCC/ARM_CM85_NTZ/non_secure/portmacro.h
index c45dd21..99f913d 100644
--- a/portable/GCC/ARM_CM85_NTZ/non_secure/portmacro.h
+++ b/portable/GCC/ARM_CM85_NTZ/non_secure/portmacro.h
@@ -56,7 +56,6 @@
#define portARCH_NAME "Cortex-M85"
#define portHAS_BASEPRI 1
#define portDONT_DISCARD __attribute__( ( used ) )
-#define portNORETURN __attribute__( ( noreturn ) )
/*-----------------------------------------------------------*/
/* ARMv8-M common port configurations. */
diff --git a/portable/ThirdParty/GCC/Posix/portmacro.h b/portable/ThirdParty/GCC/Posix/portmacro.h
index df2db07..154a039 100644
--- a/portable/ThirdParty/GCC/Posix/portmacro.h
+++ b/portable/ThirdParty/GCC/Posix/portmacro.h
@@ -70,8 +70,6 @@
/*-----------------------------------------------------------*/
/* Architecture specifics. */
-#define portNORETURN __attribute__( ( noreturn ) )
-
#define portSTACK_GROWTH ( -1 )
#define portHAS_STACK_OVERFLOW_CHECKING ( 1 )
#define portTICK_PERIOD_MS ( ( TickType_t ) 1000 / configTICK_RATE_HZ )
@@ -114,7 +112,7 @@
#define portCLEAN_UP_TCB( pxTCB ) vPortCancelThread( pxTCB )
/*-----------------------------------------------------------*/
-#define portTASK_FUNCTION_PROTO( vFunction, pvParameters ) void vFunction( void *pvParameters )
+#define portTASK_FUNCTION_PROTO( vFunction, pvParameters ) void vFunction( void *pvParameters ) __attribute__( ( noreturn ) )
#define portTASK_FUNCTION( vFunction, pvParameters ) void vFunction( void *pvParameters )
/*-----------------------------------------------------------*/
diff --git a/portable/ThirdParty/GCC/RP2040/include/portmacro.h b/portable/ThirdParty/GCC/RP2040/include/portmacro.h
index 15f7181..973ac39 100644
--- a/portable/ThirdParty/GCC/RP2040/include/portmacro.h
+++ b/portable/ThirdParty/GCC/RP2040/include/portmacro.h
@@ -80,7 +80,6 @@
#define portTICK_PERIOD_MS ( ( TickType_t ) 1000 / configTICK_RATE_HZ )
#define portBYTE_ALIGNMENT 8
#define portDONT_DISCARD __attribute__( ( used ) )
- #define portNORETURN __attribute__( ( noreturn ) )
/* We have to use PICO_DIVIDER_DISABLE_INTERRUPTS as the source of truth rathern than our config,
* as our FreeRTOSConfig.h header cannot be included by ASM code - which is what this affects in the SDK */
#define portUSE_DIVIDER_SAVE_RESTORE !PICO_DIVIDER_DISABLE_INTERRUPTS
diff --git a/portable/ThirdParty/GCC/Xtensa_ESP32/include/portmacro.h b/portable/ThirdParty/GCC/Xtensa_ESP32/include/portmacro.h
index 575659a..e87d560 100644
--- a/portable/ThirdParty/GCC/Xtensa_ESP32/include/portmacro.h
+++ b/portable/ThirdParty/GCC/Xtensa_ESP32/include/portmacro.h
@@ -335,8 +335,6 @@
/*-----------------------------------------------------------*/
/* Architecture specifics. */
- #define portNORETURN __attribute__( ( noreturn ) )
-
#define portSTACK_GROWTH ( -1 )
#define portTICK_PERIOD_MS ( ( TickType_t ) 1000 / configTICK_RATE_HZ )
#define portBYTE_ALIGNMENT 4
diff --git a/tasks.c b/tasks.c
index 5548220..5bdfff5 100644
--- a/tasks.c
+++ b/tasks.c
@@ -432,7 +432,7 @@
* void prvIdleTask( void *pvParameters );
*
*/
-static portTASK_FUNCTION_PROTO( prvIdleTask, pvParameters ) portNORETURN PRIVILEGED_FUNCTION;
+static portTASK_FUNCTION_PROTO( prvIdleTask, pvParameters ) PRIVILEGED_FUNCTION;
/*
* Utility to free all memory allocated by the scheduler to hold a TCB,
@@ -3486,7 +3486,7 @@
*
*/
-portTASK_FUNCTION( prvIdleTask, pvParameters )
+static portTASK_FUNCTION( prvIdleTask, pvParameters )
{
/* Stop warnings. */
( void ) pvParameters;
diff --git a/timers.c b/timers.c
index 2c08db0..457ab8f 100644
--- a/timers.c
+++ b/timers.c
@@ -158,7 +158,7 @@
* task. Other tasks communicate with the timer service task using the
* xTimerQueue queue.
*/
- static portTASK_FUNCTION_PROTO( prvTimerTask, pvParameters ) portNORETURN PRIVILEGED_FUNCTION;
+ static portTASK_FUNCTION_PROTO( prvTimerTask, pvParameters ) PRIVILEGED_FUNCTION;
/*
* Called by the timer service task to interpret and process a command it