Files
xen/docs/misra/safe.json
T
Nicola Vetrini 0a5b2ca32c x86/domain: deviate violation of MISRA C Rule 20.12
MISRA C Rule 20.12 states: "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".

In this case, builds where CONFIG_COMPAT=y the fpu_ctxt
macro is used both as a regular macro argument and as an operand for
stringification in the expansion of CHECK_FIELD_.
This is deviated using a SAF-x-safe comment.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
2024-06-10 10:34:05 +02:00

69 lines
3.0 KiB
JSON

{
"version": "1.0",
"content": [
{
"id": "SAF-0-safe",
"analyser": {
"eclair": "MC3R1.R8.6",
"coverity": "misra_c_2012_rule_8_6_violation"
},
"name": "Rule 8.6: linker script defined symbols",
"text": "It is safe to declare this symbol because it is defined in the linker script."
},
{
"id": "SAF-1-safe",
"analyser": {
"eclair": "MC3R1.R8.4"
},
"name": "Rule 8.4: asm-only definition",
"text": "Functions and variables used only by asm modules do not need to have a visible declaration prior to their definition."
},
{
"id": "SAF-2-safe",
"analyser": {
"eclair": "MC3R1.R10.1"
},
"name": "MC3R1.R10.1: use of an enumeration constant in an arithmetic operation",
"text": "This violation can be fixed with a cast to (int) of the enumeration constant, but a deviation was chosen due to code readability (see also the comment in BITS_TO_LONGS)."
},
{
"id": "SAF-3-safe",
"analyser": {
"eclair": "MC3R1.R20.4"
},
"name": "MC3R1.R20.4: allow the definition of a macro with the same name as a keyword in some special cases",
"text": "The definition of a macro with the same name as a keyword can be useful in certain configurations to improve the guarantees that can be provided by Xen. See docs/misra/deviations.rst for a precise rationale for all such cases."
},
{
"id": "SAF-4-safe",
"analyser": {
"eclair": "MC3R1.R17.1"
},
"name": "Rule 17.1: internal helper functions made to break long running hypercalls into multiple calls.",
"text": "They need to take a variable number of arguments depending on the original hypercall they are trying to continue."
},
{
"id": "SAF-5-safe",
"analyser": {
"eclair": "MC3R1.R16.2"
},
"name": "MC3R1.R16.2: using a case label when the most closely-enclosing compound statement is not a switch statement",
"text": "A switch label enclosed by some compound statement that is not the body of a switch is permitted within local helper macros that are unlikely to be misused or misunderstood."
},
{
"id": "SAF-6-safe",
"analyser": {
"eclair": "MC3R1.R20.12"
},
"name": "MC3R1.R20.12: use of a macro argument that deliberately violates the Rule",
"text": "A macro parameter that is itself a macro is intentionally used within the macro both as a regular parameter and for text replacement."
},
{
"id": "SAF-7-safe",
"analyser": {},
"name": "Sentinel",
"text": "Next ID to be used"
}
]
}