| 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_1.4 | 1.4 Emergent language features shall not be used | Yes | Required |
| MISRA25_1.5 | 1.5 Obsolescent language features shall not be used | Yes | Required |
| MISRA25_2.1 | 2.1 A project shall not contain unreachable code | Yes | Required |
| MISRA25_2.2 | A project shall not contain dead code | No | Required |
| MISRA25_2.3 | 2.3 A project should not contain unused type declarations | Yes | Advisory |
| MISRA25_2.4 | 2.4 A project should not contain unused tag declarations | Yes | Advisory |
| MISRA25_2.5 | 2.5 A project should not contain unused macro declarations | Yes | Advisory |
| MISRA25_2.6 | A function should not contain unused label declarations | Yes | Advisory |
| MISRA25_2.7 | 2.7 A function should not contain unused parameters | Yes | Advisory |
| MISRA25_2.8 | A project should not contain unused object definitions | Yes | Advisory |
| MISRA25_3.1 | shall not be used within a comment | Yes | Required |
| MISRA25_3.2 | comments | Yes | Required |
| MISRA25_4.1 | 4.1 Octal and hexadecimal escape sequences shall be terminated | Yes | Required |
| MISRA25_4.2 | 4.2 Trigraphs should not be used | Yes | Advisory |
| MISRA25_5.1 | 5.1 External identifiers shall be distinct | Yes | Required |
| MISRA25_5.2 | 5.2 Identifiers declared in the same scope and name space shall be distinct | Yes | Required |
| MISRA25_5.3 | 5.3 An identifier declared in an inner scope shall not hide an identifier declared in an outer scope | Yes | Required |
| MISRA25_5.4 | 5.4 Macro identifiers shall be distinct | Yes | Required |
| MISRA25_5.5 | 5.5 Identifiers shall be distinct from macro names | Yes | Required |
| MISRA25_5.6 | 5.6 A typedef name shall be a unique identifier | Yes | Required |
| MISRA25_5.7 | 5.7 A tag name shall be a unique identifier | Yes | Required |
| MISRA25_5.8 | 5.8 Identifiers that define objects or functions with external linkage shall be unique | Yes | Required |
| MISRA25_5.9 | 5.9 Identifiers that define objects or functions with internal linkage should be unique | Yes | Advisory |
| MISRA25_5.10 | 5.10 A reserved identifier or reserved macro name shall not be declared | Yes | Required |
| MISRA25_6.1 | 6.1 Bit-fields shall only be declared with an appropriate type | Yes | Required |
| MISRA25_6.2 | 6.2 Single-bit named bit-fields shall not be of a signed type | Yes | Required |
| MISRA25_6.3 | 6.3 A bit-field shall not be declared as a member of a union | Yes | Required |
| MISRA25_7.1 | 7.1 Octal constants shall not be used | Yes | Required |
| MISRA25_7.2 | 7.2 A u or U suffix shall be applied to all integer constants that are represented in an unsigned type | Yes | Required |
| MISRA25_7.3 | 7.3 The lowercase character 'l' shall not be used in a literal suffix | Yes | Required |
| MISRA25_7.4 | 7.4 A string literal shall not be assigned to an object unless the object's type is "pointer to const-qualified char" | Yes | Required |
| MISRA25_7.5 | 7.5 The argument of an integer constant macro shall have an appropriate form | Yes | Mandatory |
| MISRA25_7.6 | 7.6 The small integer variants of the minimum-width integer constant macros shall not be used | Yes | Required |
| 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_8.3 | 8.3 All declarations of an object or function shall use the same names and type qualifiers | Yes | Required |
| MISRA25_8.4 | 8.4 A compatible declaration shall be visible when an object or function with external linkage is defined | Yes | Required |
| MISRA25_8.5 | 8.5 An external object or function shall be declared once in one and only one file | Yes | Required |
| MISRA25_8.6 | 8.6 An identifier with external linkage shall have exactly one external definition | Yes | Required |
| MISRA25_8.7 | 8.7 Functions and objects should not be defined with external linkage if they are referenced in only one translation unit | Yes | Advisory |
| MISRA25_8.8 | 8.8 The static storage class specifier shall be used in all declarations of objects and functions that have internal linkage | Yes | Required |
| MISRA25_8.9 | 8.9 An object should be defined at block scope if its identifier only appears in a single function | Yes | Advisory |
| MISRA25_8.10 | 8.10 An inline function shall be declared with the static storage class | Yes | Required |
| MISRA25_8.11 | 8.11 When an array with external linkage is declared, its size should be explicitly specified | Yes | Advisory |
| MISRA25_8.12 | 8.12 Within an enumerator list, the value of an implicitly-specified enumeration constant shall be unique | Yes | Required |
| MISRA25_8.13 | 8.13 A pointer should point to a const-qualified type whenever possible | Yes | Advisory |
| MISRA25_8.14 | 8.14 The restrict type qualifier shall not be used | Yes | Required |
| MISRA25_8.15 | 8.15 All declarations of an object with an explicit alignment specification shall specify the same alignment | Yes | Required |
| MISRA25_8.16 | 8.16 The alignment specification of zero should not appear in an object declaration | Yes | Advisory |
| MISRA25_8.17 | 8.17 At most one explicit alignment specifier should appear in an object declaration | Yes | Advisory |
| MISRA25_9.1 | 9.1 The value of an object with automatic storage duration shall not be read before it has been set | Yes | Mandatory |
| MISRA25_9.2 | 9.2 The initializer for an aggregate or union shall be enclosed in braces | Yes | Required |
| MISRA25_9.3 | 9.3 Arrays shall not be partially initialized | Yes | Required |
| MISRA25_9.4 | 9.4 An element of an object shall not be initialized more than once | Yes | Required |
| MISRA25_9.5 | 9.5 Where designated initializers are used to initialize an array object the size of the array shall be specified explicitly | Yes | Required |
| MISRA25_9.6 | 9.6 An initializer using chained designators shall not contain initializers without designators | Yes | Required |
| MISRA25_9.7 | 9.7 Atomic objects shall be appropriately initialized before being accessed | Yes | Mandatory |
| MISRA25_10.1 | 10.1 Operands shall not be of an inappropriate essential type | Yes | Required |
| MISRA25_10.2 | 10.2 Expressions of essentially character type shall not be used inappropriately in addition and subtraction operations | Yes | Required |
| MISRA25_10.3 | 10.3 The value of an expression shall not be assigned to an object with a narrower essential type or of a different essential type category | Yes | Required |
| MISRA25_10.4 | 10.4 Both operands of an operator in which the usual arithmetic conversions are performed shall have the same essential type category | Yes | Required |
| MISRA25_10.5 | The value of an expression should not be cast to an inappropriate essential type | Yes | Advisory |
| MISRA25_10.6 | 10.6 The value of a composite expression shall not be assigned to an object with wider essential type | Yes | Required |
| 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_10.8 | 10.8 The value of a composite expression shall not be cast to a different essential type category or a wider essential type | Yes | Required |
| MISRA25_11.1 | 11.1 Conversions shall not be performed between a pointer to a function and any other type | Yes | Required |
| MISRA25_11.2 | 11.2 Conversions shall not be performed between a pointer to an incomplete type and any other type | Yes | Required |
| MISRA25_11.3 | 11.3 A conversion shall not be performed between a pointer to object type and a pointer to a different object type | Yes | Required |
| MISRA25_11.4 | 11.4 A conversion shall not be performed between a pointer to object and an arithmetic type | Yes | Required |
| MISRA25_11.5 | 11.5 A conversion should not be performed from pointer to void into pointer to object | Yes | Advisory |
| MISRA25_11.6 | A cast shall not be performed between pointer to void and an arithmetic type | Yes | Required |
| MISRA25_11.8 | 11.8 A conversion shall not remove any const, volatile or _Atomic qualification from the type pointed to by a pointer | Yes | Required |
| MISRA25_11.9 | 11.9 The macro NULL shall be the only permitted form of integer null pointer constant | 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.2 | 12.2 The right hand operand of a shift operator shall lie in the range zero to one less than the width in bits of the essential type of the left hand operand | Yes | Required |
| 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_12.6 | 12.6 Structure and union members of atomic objects shall not be directly accessed | Yes | Required |
| MISRA25_13.1 | 13.1 Initializer lists shall not contain persistent side effects | Yes | Required |
| 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_13.3 | 13.3 A full expression containing an increment (++) or decrement (--) operator should have no other potential side effects other than that caused by the increment or decrement operator | Yes | Advisory |
| MISRA25_13.4 | 13.4 The result of an assignment operator should not be used | Yes | Advisory |
| MISRA25_13.5 | 13.5 The right hand operand of a logical && or || operator shall not contain persistent side effects | Yes | Required |
| MISRA25_13.6 | 13.6 The operand of the sizeof operator shall not contain any expression which has potential side effects | Yes | Required |
| MISRA25_14.1 | 14.1 A loop counter shall not have essentially floating type | Yes | Required |
| MISRA25_14.2 | 14.2 A for loop shall be well-formed | Yes | Required |
| MISRA25_14.3 | Controlling expressions shall not be invariant | No | Required |
| MISRA25_14.4 | 14.4 The controlling expression of an if statement and the controlling expression of an iteration-statement shall have essentially Boolean type | Yes | Required |
| MISRA25_15.1 | 15.1 The goto statement should not be used | Yes | Advisory |
| MISRA25_15.2 | 15.2 The goto statement shall jump to a label declared later in the same function | Yes | Required |
| MISRA25_15.3 | 15.3 Any label referenced by a goto statement shall be declared in the same block, or in any block enclosing the goto statement | Yes | Required |
| MISRA25_15.4 | 15.4 There should be no more than one break or goto statement used to terminate any iteration statement | Yes | Advisory |
| MISRA25_15.5 | 15.5 A function should have a single point of exit at the end | Yes | Advisory |
| MISRA25_15.6 | 15.6 The body of an iteration-statement or a selection-statement shall be a compound-statement | Yes | Required |
| MISRA25_15.7 | 15.7 All if ... else if constructs shall be terminated with an else statement | Yes | Required |
| MISRA25_16.1 | 16.1 All switch statements shall be well-formed | Yes | Required |
| MISRA25_16.2 | 16.2 A switch label shall only be used when the most closely-enclosing compound statement is the body of a switch statement | Yes | Required |
| MISRA25_16.3 | 16.3 An unconditional break statement shall terminate every switch-clause | Yes | Required |
| MISRA25_16.4 | 16.4 Every switch statement shall have a default label | Yes | Required |
| MISRA25_16.5 | 16.5 A default label shall appear as either the first or the last switch label of a switch statement | Yes | Required |
| MISRA25_16.6 | 16.6 Every switch statement shall have at least two switch-clauses | Yes | Required |
| MISRA25_16.7 | A switch-expression shall not have essentially Boolean type | Yes | Required |
| MISRA25_17.1 | 17.1 The features of <stdarg.h> shall not be used | Yes | Required |
| MISRA25_17.2 | 17.2 Functions shall not call themselves, either directly or indirectly | Yes | Required |
| MISRA25_17.3 | 17.3 A function shall not be declared implicitly | Yes | Mandatory |
| 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.5 | 17.5 The function argument corresponding to a parameter declared to have an array type shall have an appropriate number of elements | Yes | Required |
| MISRA25_17.7 | The value returned by a function having non-void return type shall be used | Yes | Required |
| MISRA25_17.8 | 17.8 A function parameter should not be modified | Yes | Advisory |
| MISRA25_17.9 | A function declared with a _Noreturn function specifier shall not return to its caller | Yes | Mandatory |
| MISRA25_17.10 | 17.10 A function declared with a _Noreturn function specifier shall have void return type | Yes | Required |
| MISRA25_17.11 | 17.11 A function that never returns should be declared with a _Noreturn function specifier | Yes | Advisory |
| MISRA25_17.12 | 17.12 A function identifier should only be used with either a preceding &, or with a parenthesized parameter list | Yes | Advisory |
| MISRA25_17.13 | 17.13 A function type shall not be type qualified | Yes | Required |
| 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_18.2 | 18.2 Subtraction between pointers shall only be applied to pointers that address elements of the same array | Yes | Required |
| MISRA25_18.3 | 18.3 The relational operators >, >=, < and <= shall not be applied to expressions of pointer type except where they point into the same object | Yes | Required |
| MISRA25_18.4 | 18.4 The +, -, += and -= operators should not be applied to an expression of pointer type | Yes | Advisory |
| MISRA25_18.5 | 18.5 Declarations should contain no more than two levels of pointer nesting | Yes | Advisory |
| MISRA25_18.6 | 18.6 The address of an object with automatic or thread-local storage shall not be copied to another object that persists after the first object has ceased to exist | Yes | Required |
| MISRA25_18.7 | 18.7 Flexible array members shall not be declared | Yes | Required |
| MISRA25_18.8 | 18.8 Variable-length arrays shall not be used | Yes | Required |
| MISRA25_18.9 | 18.9 An object with temporary lifetime shall not undergo array-to-pointer conversion | Yes | Required |
| MISRA25_18.10 | 18.10 Pointers to variably-modified array types shall not be used | Yes | Mandatory |
| MISRA25_19.1 | An object shall not be assigned or copied to an overlapping object | No | Mandatory |
| MISRA25_19.2 | 19.2 The union keyword should not be used | Yes | Advisory |
| MISRA25_20.1 | 20.1 #include directives shall only be preceded by preprocessor directives or comments | Yes | Advisory |
| MISRA25_20.2 | character sequences shall not occur in a header file name | Yes | Required |
| MISRA25_20.3 | The #include directive shall be followed by either a <filename> or "filename" sequence | Yes | Required |
| MISRA25_20.4 | 20.4 A macro shall not be defined with the same name as a keyword | Yes | Required |
| MISRA25_20.5 | 20.5 #undef should not be used | Yes | Advisory |
| MISRA25_20.6 | 20.6 Tokens that look like a preprocessing directive shall not occur within a macro argument | 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.10 | 20.10 The # and ## preprocessor operators should not be used | Yes | Advisory |
| MISRA25_20.11 | 20.11 A macro parameter immediately following a # operator shall not immediately be followed by a ## operator | Yes | 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.13 | 20.13 A line whose first token is # shall be a valid preprocessing directive | Yes | 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_20.15 | 20.15 #define and #undef shall not be used on a reserved identifier or reserved macro name | Yes | Required |
| MISRA25_21.3 | 21.3 The memory allocation and deallocation functions of <stdlib.h> shall not be used | Yes | Required |
| MISRA25_21.4 | 21.4 The standard header file <setjmp.h> shall not be used | Yes | Required |
| MISRA25_21.5 | 21.5 The standard header file <signal.h> shall not be used | Yes | Required |
| MISRA25_21.6 | output functions shall not be used | Yes | Required |
| MISRA25_21.7 | 21.7 The atof, atoi, atol and atoll functions of <stdlib.h> shall not be used | Yes | Required |
| MISRA25_21.8 | The Standard Library termination functions of <stdlib.h> shall not be used | Yes | Required |
| MISRA25_21.9 | 21.9 The Standard Library functions bsearch and qsort of <stdlib.h> shall not be used | Yes | Required |
| MISRA25_21.10 | 21.10 The Standard Library time and date functions shall not be used | Yes | Required |
| MISRA25_21.11 | 21.11 The standard header file <tgmath.h> shall not be used | Yes | Required |
| MISRA25_21.12 | 21.12 The standard header file <fenv.h> shall not be used | Yes | Required |
| MISRA25_21.13 | 21.13 Any value passed to a function in <ctype.h> shall be representable as an unsigned char or be the value EOF | Yes | Mandatory |
| MISRA25_21.14 | 21.14 The Standard Library function memcmp shall not be used to compare null terminated strings | 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.17 | 21.17 Use of the string handling functions from <string.h> shall not result in accesses beyond the bounds of the objects referenced by their pointer parameters | Yes | Mandatory |
| MISRA25_21.18 | The size_t argument passed to any function in <string.h> shall have an appropriate value | Yes | Mandatory |
| MISRA25_21.19 | 21.19 The pointers returned by the Standard Library functions localeconv, getenv, setlocale or strerror shall only be used as if they have pointer to const-qualified type | Yes | Mandatory |
| MISRA25_21.20 | 21.20 The pointer returned by the Standard Library functions asctime, ctime, gmtime, localtime, localeconv, getenv, setlocale or strerror shall not be used following a subsequent call to the same function | Yes | Mandatory |
| MISRA25_21.21 | 21.21 The Standard Library function system of <stdlib.h> shall not be used | Yes | Required |
| MISRA25_21.22 | 21.22 All operand arguments to any type-generic macros declared in <tgmath.h> shall have an appropriate essential type | Yes | Mandatory |
| MISRA25_21.23 | 21.23 All operand arguments to any multi-argument type-generic macros declared in <tgmath.h> shall have the same standard type | Yes | Required |
| MISRA25_21.24 | 21.24 The random number generator functions of <stdlib.h> shall not be used | Yes | Required |
| MISRA25_21.25 | 21.25 All memory synchronization operations shall be executed in sequentially consistent order | Yes | Required |
| MISRA25_21.26 | 21.26 The Standard Library function mtx_timedlock() shall only be invoked on mutex objects of appropriate mutex type | Yes | Required |
| 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.3 | 22.3 The same file shall not be open for read and write access at the same time on different streams | Yes | Required |
| MISRA25_22.4 | 22.4 There shall be no attempt to write to a stream which has been opened as read-only | Yes | Mandatory |
| MISRA25_22.5 | 22.5 A pointer to a FILE object shall not be dereferenced | 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_22.7 | 22.7 The macro EOF shall only be compared with the unmodified return value from any Standard Library function capable of returning EOF | Yes | Required |
| MISRA25_22.8 | 22.8 The value of errno shall be set to zero prior to a call to an errno-setting-function | Yes | Required |
| MISRA25_22.9 | 22.9 The value of errno shall be tested against zero after calling an errno-setting-function | Yes | Required |
| MISRA25_22.10 | 22.10 The value of errno shall only be tested when the last function to be called was an errno-setting-function | Yes | Required |
| MISRA25_22.11 | 22.11 A thread that was previously either joined or detached shall not be subsequently joined nor detached | Yes | Required |
| MISRA25_22.12 | 22.12 Thread objects, thread synchronization objects, and thread-specific storage pointers shall only be accessed by the appropriate Standard Library functions | Yes | Mandatory |
| MISRA25_22.13 | 22.13 Thread objects, thread synchronization objects and thread-specific storage pointers shall have appropriate storage duration | Yes | Required |
| MISRA25_22.14 | 22.14 Thread synchronization objects shall be initialized before being accessed | No | Mandatory |
| MISRA25_22.15 | 22.15 Thread synchronization objects and thread-specific storage pointers shall not be destroyed until after all threads accessing them have terminated | Yes | Required |
| MISRA25_22.16 | 22.16 All mutex objects locked by a thread shall be explicitly unlocked by the same thread | Yes | Required |
| MISRA25_22.17 | 22.17 No thread shall unlock a mutex or call cnd_wait() or cnd_timedwait() for a mutex it has not locked before | Yes | Required |
| MISRA25_22.18 | 22.18 Non-recursive mutexes shall not be recursively locked | Yes | Required |
| MISRA25_22.19 | 22.19 A condition variable shall be associated with at most one mutex object | Yes | Required |
| MISRA25_22.20 | 22.20 Thread-specific storage pointers shall be created before being accessed | No | Mandatory |
| MISRA25_23.1 | 23.1 A generic selection should only be expanded from a macro | Yes | Advisory |
| 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.3 | 23.3 A generic selection should contain at least one non-default association | Yes | Advisory |
| 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_23.7 | 23.7 A generic selection that is expanded from a macro should evaluate its argument only once | Yes | Advisory |
| MISRA25_23.8 | 23.8 A default association shall appear as either the first or the last association of a generic selection | Yes | 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 |