| Check ID | Check Name | Supported | Category |
| MISRA25_1.1 | The program shall contain no violations of the standard C syntax and constraints, and shall not exceed the implementation's translation limits | No | Required |
| MISRA25_1.3 | There shall be no occurrence of undefined or critical unspecified behaviour | No | Required |
| MISRA25_2.2 | A project shall not contain dead code | No | Required |
| MISRA25_2.6 | A function should not contain unused label declarations | Yes | Advisory |
| MISRA25_2.8 | A project should not contain unused object definitions | Yes | Advisory |
| MISRA25_8.1 | Types shall be explicitly specified | Yes | Required |
| MISRA25_8.2 | Function types shall be in prototype form with named parameters | Yes | Required |
| MISRA25_10.5 | The value of an expression should not be cast to an inappropriate essential type | Yes | Advisory |
| MISRA25_10.7 | If a composite expression is used as one operand of an operator in which the usual arithmetic conversions are performed then the other operand shall not have wider essential type | Yes | Required |
| MISRA25_11.6 | A cast shall not be performed between pointer to void and an arithmetic type | Yes | Required |
| MISRA25_11.10 | The _Atomic qualifier shall not be applied to the incomplete type void | Yes | Required |
| MISRA25_12.1 | The precedence of operators within expressions should be made explicit | No | Advisory |
| MISRA25_12.3 | The comma operator should not be used | Yes | Advisory |
| MISRA25_12.4 | Evaluation of constant expressions should not lead to unsigned integer wrap-around | No | Advisory |
| MISRA25_12.5 | The sizeof operator shall not have an operand which is a function parameter declared as "array of type" | Yes | Mandatory |
| MISRA25_13.2 | The value of an expression and its persistent side effects shall be the same under all permitted evaluation orders and shall be independent from thread interleaving | No | Required |
| MISRA25_14.3 | Controlling expressions shall not be invariant | No | Required |
| MISRA25_16.7 | A switch-expression shall not have essentially Boolean type | Yes | Required |
| MISRA25_17.4 | All exit paths from a function with non-void return type shall have an explicit return statement with an expression | Yes | Mandatory |
| MISRA25_17.7 | The value returned by a function having non-void return type shall be used | Yes | Required |
| MISRA25_17.9 | A function declared with a _Noreturn function specifier shall not return to its caller | Yes | Mandatory |
| MISRA25_18.1 | A pointer resulting from arithmetic on a pointer operand shall address an element of the same array as that pointer operand | No | Required |
| MISRA25_19.1 | An object shall not be assigned or copied to an overlapping object | No | Mandatory |
| MISRA25_20.3 | The #include directive shall be followed by either a <filename> or "filename" sequence | Yes | Required |
| MISRA25_20.7 | Expressions resulting from the expansion of macro parameters shall be appropriately delimited | No | Required |
| MISRA25_20.8 | The controlling expression of a #if or #elif preprocessing directive shall evaluate to 0 or 1 | No | Required |
| MISRA25_20.9 | All identifiers used in the controlling expression of #if or #elif preprocessing directives shall be #define'd before evaluation | No | Required |
| MISRA25_20.12 | A macro parameter used as an operand to the # or ## operators, which is itself subject to further macro replacement, shall only be used as an operand to these operators | No | Required |
| MISRA25_20.14 | All #else, #elif and #endif preprocessor directives shall reside in the same file as the #if, #ifdef or #ifndef directive to which they are related | Yes | Required |
| MISRA25_21.8 | The Standard Library termination functions of <stdlib.h> shall not be used | Yes | Required |
| MISRA25_21.15 | The pointer arguments to the Standard Library functions memcpy, memmove and memcmp shall be pointers to qualified or unqualified versions of compatible types | Yes | Required |
| MISRA25_21.16 | The pointer arguments to the Standard Library function memcmp shall point to either a pointer type, an essentially signed type, an essentially unsigned type, an essentially Boolean type or an essentially enum type | Yes | Required |
| MISRA25_21.18 | The size_t argument passed to any function in <string.h> shall have an appropriate value | Yes | Mandatory |
| MISRA25_22.1 | All resources obtained dynamically by means of Standard Library functions shall be explicitly released | Yes | Required |
| MISRA25_22.2 | A block of memory shall only be freed if it was allocated by means of a Standard Library function | Yes | Mandatory |
| MISRA25_22.6 | The value of a pointer to a FILE shall not be used after the associated stream has been closed | No | Mandatory |
| MISRA25_23.2 | A generic selection that is not expanded from a macro shall not contain potential side effects in the controlling expression | Yes | Required |
| MISRA25_23.4 | A generic association shall list an appropriate type | No | Required |
| MISRA25_23.5 | A generic selection should not depend on implicit pointer type conversion | No | Advisory |
| MISRA25_23.6 | The controlling expression of a generic selection shall have an essential type that matches its standard type | No | Required |
| MISRA25_DIR_1.1 | Directive 1.1 Any implementation-defined behaviour on which the output of the program depends shall be documented and understood | No | Required |
| MISRA25_DIR_1.2 | Directive 1.2 The use of language extensions should be minimized | No | Advisory |
| MISRA25_DIR_2.1 | Directive 2.1 All source files shall compile without any compilation errors | Yes | Required |
| MISRA25_DIR_3.1 | Directive 3.1 All code shall be traceable to documented requirements | No | Required |
| MISRA25_DIR_4.1 | Directive 4.1 Run-time failures shall be minimized | No | Required |
| MISRA25_DIR_4.2 | Directive 4.2 All usage of assembly language should be documented | No | Advisory |
| MISRA25_DIR_4.3 | Directive 4.3 Assembly language shall be encapsulated and isolated | No | Required |
| MISRA25_DIR_4.4 | Directive 4.4 Sections of code should not be "commented out" | Yes | Advisory |
| MISRA25_DIR_4.5 | Directive 4.5 Identifiers in the same name space with overlapping visibility should be typographically unambiguous | Yes | Advisory |
| MISRA25_DIR_4.6 | Directive 4.6 typedefs that indicate size and signedness should be used in place of the basic integer types | Yes | Advisory |
| MISRA25_DIR_4.7 | Directive 4.7 If a function returns error information, then that error information shall be tested | No | Required |
| MISRA25_DIR_4.8 | Directive 4.8 If a pointer to a structure or union is never dereferenced within a translation unit, then the implementation of the object should be hidden | Yes | Advisory |
| MISRA25_DIR_4.9 | Directive 4.9 A function should be used in preference to a function-like macro where they are interchangeable | No | Advisory |
| MISRA25_DIR_4.10 | Directive 4.10 Precautions shall be taken in order to prevent the contents of a header file being included more than once | Yes | Required |
| MISRA25_DIR_4.11 | Directive 4.11 The validity of values passed to library functions shall be checked | No | Required |
| MISRA25_DIR_4.12 | Directive 4.12 Dynamic memory allocation shall not be used | Yes | Required |
| MISRA25_DIR_4.13 | Directive 4.13 Functions which are designed to provide operations on a resource should be called in an appropriate sequence | No | Advisory |
| MISRA25_DIR_4.14 | Directive 4.14 The validity of values received from external sources shall be checked | Yes | Required |
| MISRA25_DIR_4.15 | Directive 4.15 Evaluation of floating-point expressions shall not lead to the undetected generation of infinities and NaNs | No | Required |
| MISRA25_DIR_5.1 | Directive 5.1 There shall be no data races between threads | No | Required |
| MISRA25_DIR_5.2 | Directive 5.2 There shall be no deadlocks between threads | No | Required |
| MISRA25_DIR_5.3 | Directive 5.3 There shall be no dynamic thread creation | Yes | Required |