[8.6] Remove suppression, instead explain reporting

This commit is contained in:
Kody Stribrny 2026-02-20 14:15:51 -08:00
parent 34d51f74b7
commit 47d94cb6b0
2 changed files with 29 additions and 32 deletions

View file

@ -52,9 +52,6 @@ _Ref 8.6.1_
- This rule prohibits an identifier with external linkage to have multiple - This rule prohibits an identifier with external linkage to have multiple
definitions or no definition. FreeRTOS hook functions are implemented in definitions or no definition. FreeRTOS hook functions are implemented in
the application and therefore, have no definition in the Kernel code. the application and therefore, have no definition in the Kernel code.
- Port layer function declarations are provided without corresponding
implementations to provide for ease of porting to a device. These definitions
cannot be implemented until a port is selected.
#### Rule 11.1 #### Rule 11.1
MISRA C:2012 Rule 11.1: Conversions shall not be performed between a pointer to MISRA C:2012 Rule 11.1: Conversions shall not be performed between a pointer to
@ -150,10 +147,20 @@ _Ref 21.6.1_
### Unsupressed Deviations ### Unsupressed Deviations
Certain deviating code is left unsurpressed for awarness. This code should Certain deviating code is left unsurpressed for awarness. These violations
not be considered for usage in MISRA compliant applications. These violations
will be reported when audited by a MISRA-checking static analysis tool. will be reported when audited by a MISRA-checking static analysis tool.
Some of these unsuppressed exceptions correspond to example code provided
either for demonstration or verification of the FreeRTOS kernel. This code
is not considered part of the kernel implemenation and should not be used
in an application.
Other unsupressed violations are left present in the kernel implementation
as implementations, code, or other missing functionality being flagged for
violations will be present with the porting layer provided by the
application. The presence of these errors after providing a port indicates
a valid MISRA issue.
#### Rule 2.1 #### Rule 2.1
MISRA C:2012 Dir 2.1: A project shall not contain unreachable code MISRA C:2012 Dir 2.1: A project shall not contain unreachable code
@ -190,6 +197,17 @@ _Ref 4.12_
Affected Files: Affected Files:
- portable/MemMang/heap_*.c - portable/MemMang/heap_*.c
#### Rule 8.6
MISRA C:2012 Rule 8.6: An identifier with external linkage shall have exactly
one external definition.
_Ref 8.6.1_
- Port layer function declarations are provided without corresponding
implementations to provide for ease of porting to a device. These definitions
cannot be implemented until a port is selected.
#### Rule 21.3 #### Rule 21.3
MISRA C-2012 Rule 21.3: The memory allocation and deallocation functions of MISRA C-2012 Rule 21.3: The memory allocation and deallocation functions of

View file

@ -180,39 +180,18 @@ typedef struct xHeapStats
/* coverity[misra_c_2012_rule_8_6_violation] */ /* coverity[misra_c_2012_rule_8_6_violation] */
void vPortDefineHeapRegions( const HeapRegion_t * const pxHeapRegions ) PRIVILEGED_FUNCTION; void vPortDefineHeapRegions( const HeapRegion_t * const pxHeapRegions ) PRIVILEGED_FUNCTION;
/*
* Returns a HeapStats_t structure filled with information about the current
* heap state.
*/
void vPortGetHeapStats( HeapStats_t * pxHeapStats );
/* /*
* Map to the memory management routines required for the port. * Map to the memory management routines required for the port.
*/ */
/* MISRA Ref 8.6.1 [External linkage] */
/* More details at: https://github.com/FreeRTOS/FreeRTOS-Kernel/blob/main/MISRA.md#rule-86 */
/* coverity[misra_c_2012_rule_8_6_violation] */
void * pvPortMalloc( size_t xWantedSize ) PRIVILEGED_FUNCTION; void * pvPortMalloc( size_t xWantedSize ) PRIVILEGED_FUNCTION;
/* MISRA Ref 8.6.1 [External linkage] */
/* More details at: https://github.com/FreeRTOS/FreeRTOS-Kernel/blob/main/MISRA.md#rule-86 */
/* coverity[misra_c_2012_rule_8_6_violation] */
void * pvPortCalloc( size_t xNum, void * pvPortCalloc( size_t xNum,
size_t xSize ) PRIVILEGED_FUNCTION; size_t xSize ) PRIVILEGED_FUNCTION;
/* MISRA Ref 8.6.1 [External linkage] */
/* More details at: https://github.com/FreeRTOS/FreeRTOS-Kernel/blob/main/MISRA.md#rule-86 */
/* coverity[misra_c_2012_rule_8_6_violation] */
void vPortFree( void * pv ) PRIVILEGED_FUNCTION;
/* MISRA Ref 8.6.1 [External linkage] */
/* More details at: https://github.com/FreeRTOS/FreeRTOS-Kernel/blob/main/MISRA.md#rule-86 */
/* coverity[misra_c_2012_rule_8_6_violation] */
void vPortInitialiseBlocks( void ) PRIVILEGED_FUNCTION;
/* MISRA Ref 8.6.1 [External linkage] */
/* More details at: https://github.com/FreeRTOS/FreeRTOS-Kernel/blob/main/MISRA.md#rule-86 */
/* coverity[misra_c_2012_rule_8_6_violation] */
size_t xPortGetFreeHeapSize( void ) PRIVILEGED_FUNCTION;
/* MISRA Ref 8.6.1 [External linkage] */
/* More details at: https://github.com/FreeRTOS/FreeRTOS-Kernel/blob/main/MISRA.md#rule-86 */
/* coverity[misra_c_2012_rule_8_6_violation] */
size_t xPortGetMinimumEverFreeHeapSize( void ) PRIVILEGED_FUNCTION;
/* MISRA Ref 8.6.1 [External linkage] */
/* More details at: https://github.com/FreeRTOS/FreeRTOS-Kernel/blob/main/MISRA.md#rule-86 */
/* coverity[misra_c_2012_rule_8_6_violation] */
void xPortResetHeapMinimumEverFreeHeapSize( void ) PRIVILEGED_FUNCTION;
size_t xSize ) PRIVILEGED_FUNCTION;
void vPortFree( void * pv ) PRIVILEGED_FUNCTION; void vPortFree( void * pv ) PRIVILEGED_FUNCTION;
void vPortInitialiseBlocks( void ) PRIVILEGED_FUNCTION; void vPortInitialiseBlocks( void ) PRIVILEGED_FUNCTION;
size_t xPortGetFreeHeapSize( void ) PRIVILEGED_FUNCTION; size_t xPortGetFreeHeapSize( void ) PRIVILEGED_FUNCTION;