mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
MISRA R16.6 states that "Every switch statement shall have at least two switch-clauses". There are only 3 violations left on x86 (zero on ARM). One of them is only a violation depending on the kconfig configuration. So deviate it instead with a SAF comment. Two of them are deliberate to enable future additions. Deviate them as such. Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com> Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com> Acked-by: Jan Beulich <jbeulich@suse.com> Release-Acked-By: Oleksii Kurochko <oleksii.kurochko@gmail.com>
117 lines
4.9 KiB
JSON
117 lines
4.9 KiB
JSON
{
|
|
"version": "1.0",
|
|
"content": [
|
|
{
|
|
"id": "SAF-0-safe",
|
|
"analyser": {
|
|
"eclair": "MC3A2.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": "MC3A2.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": "MC3A2.R10.1"
|
|
},
|
|
"name": "MC3A2.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": "MC3A2.R20.4"
|
|
},
|
|
"name": "MC3A2.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": "MC3A2.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": "MC3A2.R16.2"
|
|
},
|
|
"name": "MC3A2.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": "MC3A2.R20.12"
|
|
},
|
|
"name": "MC3A2.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": {
|
|
"eclair": "MC3A2.R20.7"
|
|
},
|
|
"name": "MC3A2.R20.7: deliberately non-parenthesized macro argument",
|
|
"text": "A macro parameter expands to an expression that is non-parenthesized, as doing so would break the functionality."
|
|
},
|
|
{
|
|
"id": "SAF-8-safe",
|
|
"analyser": {
|
|
"eclair": "MC3A2.D4.10"
|
|
},
|
|
"name": "Dir 4.10: headers that leave it up to the caller to include them correctly",
|
|
"text": "Headers that deliberatively leave the responsability of their correct inclusion to the caller are allowed."
|
|
},
|
|
{
|
|
"id": "SAF-9-safe",
|
|
"analyser": {
|
|
"eclair": "MC3A2.D4.10"
|
|
},
|
|
"name": "Dir 4.10: empty headers",
|
|
"text": "Empty headers pose no risk if included more than once."
|
|
},
|
|
{
|
|
"id": "SAF-10-safe",
|
|
"analyser": {
|
|
"eclair": "MC3A2.D4.10"
|
|
},
|
|
"name": "Dir 4.10: direct inclusion guard before",
|
|
"text": "Headers with just the direct inclusion guard before the inclusion guard are safe."
|
|
},
|
|
{
|
|
"id": "SAF-11-safe",
|
|
"analyser": {
|
|
"eclair": "MC3A2.R16.6"
|
|
},
|
|
"name": "Rule 16.6: single clause due to kconfig",
|
|
"text": "A switch statement with a single switch clause because other switch clauses are disabled in a given kconfig is safe."
|
|
},
|
|
{
|
|
"id": "SAF-12-safe",
|
|
"analyser": {
|
|
"eclair": "MC3A2.R16.6"
|
|
},
|
|
"name": "Rule 16.6: single clause due to future expansion",
|
|
"text": "A switch statement with a single switch clause to purposely enable future additions of new cases is safe."
|
|
},
|
|
{
|
|
"id": "SAF-13-safe",
|
|
"analyser": {},
|
|
"name": "Sentinel",
|
|
"text": "Next ID to be used"
|
|
}
|
|
]
|
|
}
|