Global Settings
Unless specified otherwise, a function with a non-const pointer argument is assumed not to read the pointee before writing it and it is assumed to write something to it before returning.
As configured, ECLAIR will:
Consider, unless specified otherwise, as having argument pointee with index 1 or more with non-const type never read before being written for any call.
-default_call_properties+="pointee_read(1..=never)"
Consider, unless specified otherwise, as having argument pointee with index 1 or more with non-const type always written before return for any call.
-default_call_properties+="pointee_write(1..=always)"
Unless specified otherwise, a function is assumed to not save/preserve the pointers received as arguments.
As configured, ECLAIR will:
Consider, unless specified otherwise, as never taking any address arguments for any call.
-default_call_properties+="taken()"
As configured, ECLAIR will:
Add tag `GCC' for a file whose canonical pathname matches the regex `^/opt/arm-gnu-toolchain-13\.2\.Rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf-gcc$'.
-file_tag+={GCC,"^/opt/arm-gnu-toolchain-13\\.2\\.Rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf-gcc$"}
FIXME: add proper documentation.
As configured, ECLAIR will:
Add tag `api:public' for a file whose canonical pathname matches the regex `^include/arch/aarch64/arch\.h$'.
-file_tag+={api:public,"^include/arch/aarch64/arch\\.h$"}
As configured, ECLAIR will:
Set the project name to `TF_A_fvp'.
-project_name=getenv("ECLAIR_PROJECT_NAME")
As configured, ECLAIR will:
Set the project root directory to `/builds/swquality/trusted-firmware-a/'.
-project_root=getenv("ECLAIR_PROJECT_ROOT")
As configured, ECLAIR will:
Consider as belonging to public API a file with tag `api:public'.
-public_files+=api:public
As configured, ECLAIR will:
Hide a report matching `all_exp_external'.
-reports={hide,all_exp_external}
Service B.EXPLAIN: Explain user configuration
As configured, ECLAIR will:
Enable the service.
-enable=B.EXPLAIN
Service B.REPORT.ECB: Output reports in ECB format
As configured, ECLAIR will:
Show up to 10 levels of macro expansions in report areas.
-config=B.REPORT.ECB,macros=10
As configured, ECLAIR will:
Write the reports output to file `/builds/swquality/trusted-firmware-a/ECLAIR/.data/FRAME.@FRAME@.ecb'.
-config=B.REPORT.ECB,output=join_paths(data_dir,"FRAME.@FRAME@.ecb")
As configured, ECLAIR will:
Show the preprocessed source for report areas with macro expansions.
-config=B.REPORT.ECB,preprocessed=show
As configured, ECLAIR will:
Enable the service.
-enable=B.REPORT.ECB
Service MC3R1.D1.1: Any implementation-defined behaviour on which the output of the program depends shall be documented and understood
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.D1.1
Service MC3R1.D2.1: All source files shall compile without any compilation errors
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.D2.1
Service MC3R1.D4.1: Run-time failures shall be minimized
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.D4.1
Service MC3R1.D4.2: All usage of assembly language should be documented
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.D4.2
Service MC3R1.D4.3: Assembly language shall be encapsulated and isolated
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.D4.3
Service MC3R1.D4.4: Sections of code should not be "commented out"
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.D4.4
Service MC3R1.D4.5: Identifiers in the same name space with overlapping visibility should be typographically unambiguous
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.D4.5
Service MC3R1.D4.7: If a function returns error information, then that error information shall be tested
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.D4.7
Service MC3R1.D4.10: Precautions shall be taken in order to prevent the contents of a header file being included more than once
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.D4.10
Service MC3R1.D4.11: The validity of values passed to library functions shall be checked
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.D4.11
Service MC3R1.D4.12: Dynamic memory allocation shall not be used
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.D4.12
Service MC3R1.D4.13: Functions which are designed to provide operations on a resource should be called in an appropriate sequence
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.D4.13
Service MC3R1.D4.14: The validity of values received from external sources shall be checked
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.D4.14
Service MC3R1.R1.1: The program shall contain no violations of the standard C syntax and constraints, and shall not exceed the implementation's translation limits
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R1.1
Service MC3R1.R1.2: Language extensions should not be used
FIXME: cite the compiler manual section describing support for __asm__.
As configured, ECLAIR will:
Hide a report whose category matches the regex `^STD.tokenext/__asm__$'.
-config=MC3R1.R1.2,reports+={hide,"category(^STD.tokenext/__asm__$)"}
FIXME: cite the compiler manual section describing support for __attribute__.
As configured, ECLAIR will:
Hide a report whose category matches the regex `^STD.tokenext/__attribute__$'.
-config=MC3R1.R1.2,reports+={hide,"category(^STD.tokenext/__attribute__$)"}
FIXME: cite the compiler manual section describing support for __typeof__.
As configured, ECLAIR will:
Hide a report whose category matches the regex `^STD.tokenext/__typeof__$'.
-config=MC3R1.R1.2,reports+={hide,"category(^STD.tokenext/__typeof__$)"}
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R1.2
Service MC3R1.R1.3: There shall be no occurrence of undefined or critical unspecified behaviour
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R1.3
Service MC3R1.R2.1: A project shall not contain unreachable code
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R2.1
Service MC3R1.R2.2: There shall be no dead code
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R2.2
Service MC3R1.R2.3: A project should not contain unused type declarations
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R2.3
Service MC3R1.R2.6: A function should not contain unused label declarations
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R2.6
Service MC3R1.R3.1: The character sequences `/*' and `//' shall not be used within a comment
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R3.1
Service MC3R1.R3.2: Line-splicing shall not be used in `//' comments
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R3.2
Service MC3R1.R4.1: Octal and hexadecimal escape sequences shall be terminated
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R4.1
Service MC3R1.R4.2: Trigraphs should not be used
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R4.2
Service MC3R1.R5.2: Identifiers declared in the same scope and name space shall be distinct
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R5.2
Service MC3R1.R5.3: An identifier declared in an inner scope shall not hide an identifier declared in an outer scope
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R5.3
Service MC3R1.R5.4: Macro identifiers shall be distinct
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R5.4
Service MC3R1.R5.5: Identifiers shall be distinct from macro names
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R5.5
Service MC3R1.R5.6: A `typedef' name shall be a unique identifier
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R5.6
Service MC3R1.R5.7: A tag name shall be a unique identifier
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R5.7
Service MC3R1.R5.9: Identifiers that define objects or functions with internal linkage should be unique
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R5.9
Service MC3R1.R6.1: Bit-fields shall only be declared with an appropriate type
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R6.1
Service MC3R1.R6.2: Single-bit named bit fields shall not be of a signed type
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R6.2
Service MC3R1.R7.1: Octal constants shall not be used
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R7.1
Service MC3R1.R7.2: A `u' or `U' suffix shall be applied to all integer constants that are represented in an unsigned type
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R7.2
Service MC3R1.R7.3: The lowercase character `l' shall not be used in a literal suffix
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R7.3
Service MC3R1.R7.4: A string literal shall not be assigned to an object unless the object's type is "pointer to `const'-qualified `char'"
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R7.4
Service MC3R1.R8.1: Types shall be explicitly specified
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R8.1
Service MC3R1.R8.2: Function types shall be in prototype form with named parameters
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R8.2
Service MC3R1.R8.3: All declarations of an object or function shall use the same names and type qualifiers
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R8.3
Service MC3R1.R8.4: A compatible declaration shall be visible when an object or function with external linkage is defined
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R8.4
Service MC3R1.R8.5: An external object or function shall be declared once in one and only one file
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R8.5
Service MC3R1.R8.8: The `static' storage class specifier shall be used in all declarations of objects and functions that have internal linkage
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R8.8
Service MC3R1.R8.9: An object should be defined at block scope if its identifier only appears in a single function
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R8.9
Service MC3R1.R8.10: An inline function shall be declared with the `static' storage class
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R8.10
Service MC3R1.R8.11: When an array with external linkage is declared, its size should be explicitly specified
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R8.11
Service MC3R1.R8.12: Within an enumerator list, the value of an implicitly-specified enumeration constant shall be unique
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R8.12
Service MC3R1.R8.13: A pointer should point to a `const'-qualified type whenever possible
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R8.13
Service MC3R1.R8.14: The `restrict' type qualifier shall not be used
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R8.14
Service MC3R1.R9.1: The value of an object with automatic storage duration shall not be read before it has been set
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R9.1
Service MC3R1.R9.2: The initializer for an aggregate or union shall be enclosed in braces
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R9.2
Service MC3R1.R9.3: Arrays shall not be partially initialized
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R9.3
Service MC3R1.R9.4: An element of an object shall not be initialized more than once
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R9.4
Service MC3R1.R9.5: Where designated initializers are used to initialize an array object the size of the array shall be specified explicitly
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R9.5
Service MC3R1.R10.1: Operands shall not be of an inappropriate essential type
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R10.1
Service MC3R1.R10.2: Expressions of essentially character type shall not be used inappropriately in addition and subtraction operations
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R10.2
Service MC3R1.R10.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
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R10.3
Service MC3R1.R10.4: Both operands of an operator in which the usual arithmetic conversions are performed shall have the same essential type category
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R10.4
Service MC3R1.R10.5: The value of an expression should not be cast to an inappropriate essential type
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R10.5
Service MC3R1.R10.6: The value of a composite expression shall not be assigned to an object with wider essential type
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R10.6
Service MC3R1.R10.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
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R10.7
Service MC3R1.R10.8: The value of a composite expression shall not be cast to a different essential type category or a wider essential type
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R10.8
Service MC3R1.R11.1: Conversions shall not be performed between a pointer to a function and any other type
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R11.1
Service MC3R1.R11.2: Conversions shall not be performed between a pointer to an incomplete type and any other type
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R11.2
Service MC3R1.R11.3: A cast shall not be performed between a pointer to object type and a pointer to a different object type
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R11.3
Service MC3R1.R11.6: A cast shall not be performed between pointer to `void' and an arithmetic type
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R11.6
Service MC3R1.R11.7: A cast shall not be performed between pointer to object and a non-integer arithmetic type
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R11.7
Service MC3R1.R11.8: A cast shall not remove any `const' or `volatile' qualification from the type pointed to by a pointer
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R11.8
Service MC3R1.R11.9: The macro `NULL' shall be the only permitted form of integer null pointer constant
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R11.9
Service MC3R1.R12.1: The precedence of operators within expressions should be made explicit
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R12.1
Service MC3R1.R12.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
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R12.2
Service MC3R1.R12.3: The comma operator should not be used
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R12.3
Service MC3R1.R12.4: Evaluation of constant expressions should not lead to unsigned integer wrap-around
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R12.4
Service MC3R1.R12.5: The `sizeof' operator shall not have an operand which is a function parameter declared as "array of type"
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R12.5
Service MC3R1.R13.1: Initializer lists shall not contain persistent side effects
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R13.1
Service MC3R1.R13.2: The value of an expression and its persistent side effects shall be the same under all permitted evaluation orders
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R13.2
Service MC3R1.R13.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
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R13.3
Service MC3R1.R13.4: The result of an assignment operator should not be used
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R13.4
Service MC3R1.R13.5: The right hand operand of a logical `&&' or `||' operator shall not contain persistent side effects
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R13.5
Service MC3R1.R13.6: The operand of the `sizeof' operator shall not contain any expression which has potential side effects
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R13.6
Service MC3R1.R14.1: A loop counter shall not have essentially floating type
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R14.1
Service MC3R1.R14.2: A `for' loop shall be well-formed
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R14.2
Service MC3R1.R14.3: Controlling expressions shall not be invariant
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R14.3
Service MC3R1.R14.4: The controlling expression of an `if' statement and the controlling expression of an iteration-statement shall have essentially Boolean type
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R14.4
Service MC3R1.R15.2: The `goto' statement shall jump to a label declared later in the same function
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R15.2
Service MC3R1.R15.3: Any label referenced by a `goto' statement shall be declared in the same block, or in any block enclosing the `goto' statement
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R15.3
Service MC3R1.R15.4: There should be no more than one `break' or `goto' statement used to terminate any iteration statement
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R15.4
Service MC3R1.R15.7: All `if ... else if' constructs shall be terminated with an `else' statement
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R15.7
Service MC3R1.R16.2: A switch label shall only be used when the most closely-enclosing compound statement is the body of a `switch' statement
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R16.2
Service MC3R1.R16.4: Every `switch' statement shall have a `default' label
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R16.4
Service MC3R1.R16.5: A `default' label shall appear as either the first or the last switch label of a `switch' statement
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R16.5
Service MC3R1.R16.6: Every `switch' statement shall have at least two switch-clauses
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R16.6
Service MC3R1.R16.7: A switch-expression shall not have essentially Boolean type
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R16.7
Service MC3R1.R17.2: Functions shall not call themselves, either directly or indirectly
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R17.2
Service MC3R1.R17.3: A function shall not be declared implicitly
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R17.3
Service MC3R1.R17.4: All exit paths from a function with non-`void' return type shall have an explicit `return' statement with an expression
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R17.4
Service MC3R1.R17.5: The function argument corresponding to a parameter declared to have an array type shall have an appropriate number of elements
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R17.5
Service MC3R1.R17.6: The declaration of an array parameter shall not contain the `static' keyword between the `[ ]'
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R17.6
Service MC3R1.R17.7: The value returned by a function having non-void return type shall be used
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R17.7
Service MC3R1.R17.8: A function parameter should not be modified
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R17.8
Service MC3R1.R18.1: A pointer resulting from arithmetic on a pointer operand shall address an element of the same array as that pointer operand
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R18.1
Service MC3R1.R18.2: Subtraction between pointers shall only be applied to pointers that address elements of the same array
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R18.2
Service MC3R1.R18.3: The relational operators `>', `>=', `<' and `<=' shall not be applied to objects of pointer type except where they point into the same object
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R18.3
Service MC3R1.R18.4: The `+', `-', `+=' and `-=' operators should not be applied to an expression of pointer type
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R18.4
Service MC3R1.R18.5: Declarations should contain no more than two levels of pointer nesting
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R18.5
Service MC3R1.R18.6: The address of an object with automatic storage shall not be copied to another object that persists after the first object has ceased to exist
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R18.6
Service MC3R1.R18.7: Flexible array members shall not be declared
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R18.7
Service MC3R1.R18.8: Variable-length array types shall not be used
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R18.8
Service MC3R1.R19.1: An object shall not be assigned or copied to an overlapping object
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R19.1
Service MC3R1.R19.2: The `union' keyword should not be used
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R19.2
Service MC3R1.R20.1: `#include' directives should only be preceded by preprocessor directives or comments
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R20.1
Service MC3R1.R20.2: The `'', `"' or `\' characters and the `/*' or `//' character sequences shall not occur in a header file name
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R20.2
Service MC3R1.R20.3: The `#include' directive shall be followed by either a `<filename>' or `"filename"' sequence
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R20.3
Service MC3R1.R20.4: A macro shall not be defined with the same name as a keyword
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R20.4
Service MC3R1.R20.5: `#undef' should not be used
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R20.5
Service MC3R1.R20.6: Tokens that look like a preprocessing directive shall not occur within a macro argument
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R20.6
Service MC3R1.R20.7: Expressions resulting from the expansion of macro parameters shall be enclosed in parentheses
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R20.7
Service MC3R1.R20.8: The controlling expression of a `#if' or `#elif' preprocessing directive shall evaluate to 0 or 1
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R20.8
Service MC3R1.R20.9: All identifiers used in the controlling expression of `#if' or `#elif' preprocessing directives shall be #define'd before evaluation
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R20.9
Service MC3R1.R20.10: The `#' and `##' preprocessor operators should not be used
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R20.10
Service MC3R1.R20.11: A macro parameter immediately following a `#' operator shall not immediately be followed by a `##' operator
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R20.11
Service MC3R1.R20.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
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R20.12
Service MC3R1.R20.13: A line whose first token is `#' shall be a valid preprocessing directive
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R20.13
Service MC3R1.R20.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
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R20.14
Service MC3R1.R21.1: `#define' and `#undef' shall not be used on a reserved identifier or reserved macro name
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R21.1
Service MC3R1.R21.2: A reserved identifier or reserved macro name shall not be declared
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R21.2
Service MC3R1.R21.3: The memory allocation and deallocation functions of `<stdlib.h>' shall not be used
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R21.3
Service MC3R1.R21.4: The standard header file `<setjmp.h>' shall not be used
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R21.4
Service MC3R1.R21.5: The standard header file `<signal.h>' shall not be used
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R21.5
Service MC3R1.R21.7: The Standard Library functions `atof', `atoi', `atol' and `atoll' of `<stdlib.h>' shall not be used
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R21.7
Service MC3R1.R21.8: The Standard Library functions `abort', `exit' and `system' of `<stdlib.h>' shall not be used
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R21.8
Service MC3R1.R21.9: The Standard Library functions `bsearch' and `qsort' of `<stdlib.h>' shall not be used
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R21.9
Service MC3R1.R21.10: The Standard Library time and date functions shall not be used
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R21.10
Service MC3R1.R21.11: The standard header file `<tgmath.h>' shall not be used
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R21.11
Service MC3R1.R21.12: The exception handling features of `<fenv.h>' should not be used
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R21.12
Service MC3R1.R21.13: Any value passed to a function in `<ctype.h>' shall be representable as an unsigned char or be the value `EOF'
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R21.13
Service MC3R1.R21.14: The Standard Library function `memcmp' shall not be used to compare null terminated strings
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R21.14
Service MC3R1.R21.15: The pointer arguments to the Standard Library functions `memcpy', `memmove' and `memcmp' shall be pointers to qualified or unqualified versions of compatible types
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R21.15
Service MC3R1.R21.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
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R21.16
Service MC3R1.R21.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
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R21.17
Service MC3R1.R21.18: The `size_t' argument passed to any function in `<string.h>' shall have an appropriate value
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R21.18
Service MC3R1.R21.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
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R21.19
Service MC3R1.R21.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
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R21.20
Service MC3R1.R22.1: All resources obtained dynamically by means of Standard Library functions shall be explicitly released
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R22.1
Service MC3R1.R22.2: A block of memory shall only be freed if it was allocated by means of a Standard Library function
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R22.2
Service MC3R1.R22.3: The same file shall not be open for read and write access at the same time on different streams
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R22.3
Service MC3R1.R22.4: There shall be no attempt to write to a stream which has been opened as read-only
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R22.4
Service MC3R1.R22.5: A pointer to a `FILE' object shall not be dereferenced
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R22.5
Service MC3R1.R22.6: The value of a pointer to a `FILE' shall not be used after the associated stream has been closed
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R22.6
Service MC3R1.R22.7: The macro `EOF' shall only be compared with the unmodified return value from any Standard Library function capable of returning `EOF'
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R22.7
Service MC3R1.R22.8: The value of `errno' shall be set to zero prior to a call to an errno-setting-function
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R22.8
Service MC3R1.R22.9: The value of `errno' shall be tested against zero after calling an errno-setting-function
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R22.9
Service MC3R1.R22.10: The value of `errno' shall only be tested when the last function to be called was an errno-setting-function
See https://developer.trustedfirmware.org/w/tf_a/tf-a-misra-analysis/
As configured, ECLAIR will:
Enable the service.
-enable=MC3R1.R22.10
Service STD.inclnest: Nesting levels for `#include' files
As configured, ECLAIR will:
Assume 24 as the limit for the limiting behavior of the C99 standard, ISO/IEC 9899:1999 (Section 5.2.4.1 item 18: ``nesting levels for `#include' files'') and a compiler whose executable is a file with tag `GCC'.
-config=STD.inclnest,+behavior={c99, GCC, 24}
Service STD.macident: Macro identifiers simultaneously defined in one preprocessing translation unit
As configured, ECLAIR will:
Assume 4096 as the limit for the limiting behavior of the C99 standard, ISO/IEC 9899:1999 (Section 5.2.4.1 item 10: ``macro identifiers simultaneously defined in one preprocessing translation unit'') and a compiler whose executable is a file with tag `GCC'.
-config=STD.macident,+behavior={c99, GCC, 4096}
Service STD.ppifnest: Nesting levels of conditional inclusion
As configured, ECLAIR will:
Assume 32 as the limit for the limiting behavior of the C99 standard, ISO/IEC 9899:1999 (Section 5.2.4.1 item 2: ``nesting levels of conditional inclusion'') and a compiler whose executable is a file with tag `GCC'.
-config=STD.ppifnest,+behavior={c99, GCC, 32}
Service STD.stdtypes: Non-standard builtin types
As configured, ECLAIR will:
Assume the supported types include `unsigned long long' and `long long' for the ill-formed behavior of the C99 standard, ISO/IEC 9899:1999 (Section 6.7.2: ``a non-standard type'') and a compiler whose executable is a file with tag `GCC'.
-config=STD.stdtypes,+behavior={c99, GCC, "unsigned long long||long long"}
Service STD.tokenext: A non-standard token
As configured, ECLAIR will:
Assume any token with a name matching the regex `^(__asm|__asm__|__attribute__|__restrict|__typeof__|__builtin_types_compatible_p|__volatile__|__alignof|_Static_assert)$' as specified for the ill-formed behavior of the C99 standard, ISO/IEC 9899:1999 (Section 6.4: ``a non-standard token'') and a compiler whose executable is a file with tag `GCC'.
-config=STD.tokenext,+behavior={c99, GCC, "^(__asm|__asm__|__attribute__|__restrict|__typeof__|__builtin_types_compatible_p|__volatile__|__alignof|_Static_assert)$"}