Move some of the complex pre-processor guards on prvWriteNameToBuffer() to compile time checks in FreeRTOS.h.

Co-authored-by: Paul Bartell <pbartell@amazon.com>
diff --git a/include/FreeRTOS.h b/include/FreeRTOS.h
index dd0b78e..14aefc3 100644
--- a/include/FreeRTOS.h
+++ b/include/FreeRTOS.h
@@ -961,6 +961,16 @@
     #define configSUPPORT_DYNAMIC_ALLOCATION    1

 #endif

 

+#if ( ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION != 1 ) )

+	#error configUSE_STATS_FORMATTING_FUNCTIONS cannot be used without dynamic allocation, but configSUPPORT_DYNAMIC_ALLOCATION is not set to 1.

+#endif

+

+#if ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 )

+	#if( ( configUSE_TRACE_FACILITY != 1 ) && ( configGENERATE_RUN_TIME_STATS != 1 ) )

+		#error configUSE_STATS_FORMATTING_FUNCTIONS is 1 but the functions that enables are not used because neither configUSE_TRACE_FACILITY or configGENERATE_RUN_TIME_STATS are 1.  Set configUSE_STATS_FORMATTING_FUNCTIONS to 0 in FreeRTOSConfig.h.

+	#endif

+#endif

+

 #ifndef configSTACK_DEPTH_TYPE

 

 /* Defaults to uint16_t for backward compatibility, but can be overridden

diff --git a/tasks.c b/tasks.c
index 3aae3a9..8bdd8df 100644
--- a/tasks.c
+++ b/tasks.c
@@ -516,9 +516,7 @@
  */

 static void prvResetNextTaskUnblockTime( void ) PRIVILEGED_FUNCTION;

 

-#if ( ( ( configUSE_TRACE_FACILITY == 1 ) || ( configGENERATE_RUN_TIME_STATS == 1 ) ) && \

-    ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) &&                                      \

-    ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )

+#if ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 )

 

 /*

  * Helper function used to pad task names with spaces when printing out

@@ -4392,9 +4390,7 @@
 #endif /* portCRITICAL_NESTING_IN_TCB */

 /*-----------------------------------------------------------*/

 

-#if ( ( ( configUSE_TRACE_FACILITY == 1 ) || ( configGENERATE_RUN_TIME_STATS == 1 ) ) && \

-    ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) &&                                      \

-    ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )

+#if ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 )

 

     static char * prvWriteNameToBuffer( char * pcBuffer,

                                         const char * pcTaskName )

@@ -4418,10 +4414,10 @@
         return &( pcBuffer[ x ] );

     }

 

-#endif /* ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) */

+#endif /* ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) */

 /*-----------------------------------------------------------*/

 

-#if ( ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )

+#if ( ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) )

 

     void vTaskList( char * pcWriteBuffer )

     {

@@ -4524,10 +4520,10 @@
         }

     }

 

-#endif /* ( ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) */

+#endif /* ( ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) ) */

 /*----------------------------------------------------------*/

 

-#if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )

+#if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && ( configUSE_TRACE_FACILITY == 1 ) )

 

     void vTaskGetRunTimeStats( char * pcWriteBuffer )

     {

@@ -4535,12 +4531,6 @@
         UBaseType_t uxArraySize, x;

         configRUN_TIME_COUNTER_TYPE ulTotalTime, ulStatsAsPercentage;

 

-        #if ( configUSE_TRACE_FACILITY != 1 )

-        {

-            #error configUSE_TRACE_FACILITY must also be set to 1 in FreeRTOSConfig.h to use vTaskGetRunTimeStats().

-        }

-        #endif

-

         /*

          * PLEASE NOTE:

          *

@@ -4651,7 +4641,7 @@
         }

     }

 

-#endif /* ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) ) */

+#endif /* ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) ) */

 /*-----------------------------------------------------------*/

 

 TickType_t uxTaskResetEventItemValue( void )