Add Noreturn attribute in template port for static analysis (#1060)
* Add _Noreturn attribute in the template function to fix MISRA 17.11 advisory warnings
* Add _Noreturn attribute in function declaration
* Code review suggestions
diff --git a/examples/cmake_example/main.c b/examples/cmake_example/main.c
index 00c5405..b7ced4d 100644
--- a/examples/cmake_example/main.c
+++ b/examples/cmake_example/main.c
@@ -45,7 +45,7 @@
/*-----------------------------------------------------------*/
-static void exampleTask( void * parameters );
+static void exampleTask( void * parameters ) __attribute__( ( noreturn ) );
/*-----------------------------------------------------------*/
@@ -62,7 +62,7 @@
}
/*-----------------------------------------------------------*/
-void main( void )
+int main( void )
{
static StaticTask_t exampleTaskTCB;
static StackType_t exampleTaskStack[ configMINIMAL_STACK_SIZE ];
@@ -84,6 +84,8 @@
{
/* Should not reach here. */
}
+
+ return 0;
}
/*-----------------------------------------------------------*/
diff --git a/portable/template/portmacro.h b/portable/template/portmacro.h
index 9066804..4a4a587 100644
--- a/portable/template/portmacro.h
+++ b/portable/template/portmacro.h
@@ -105,7 +105,7 @@
#define portYIELD() vPortYield()
/* Task function macros as described on the FreeRTOS.org WEB site. */
-#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 )
#if ( configNUMBER_OF_CORES > 1 )