From: Alessandro Zucchelli Date: Tue, 10 Dec 2024 10:37:23 +0000 (+0100) Subject: xen: update ECLAIR service identifiers from MC3R1 to MC3A2. X-Git-Tag: RELEASE-4.18.4~3 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=df59fb4d068a4d1b3581aebb270c071874080f3c;p=xen.git xen: update ECLAIR service identifiers from MC3R1 to MC3A2. Rename all instances of ECLAIR MISRA C:2012 service identifiers, identified by the prefix MC3R1, to use the prefix MC3A2, which refers to MISRA C:2012 Amendment 2 guidelines. This update is motivated by the need to upgrade ECLAIR GitLab runners that use the new naming scheme for MISRA C:2012 Amendment 2 guidelines. Changes to the docs/misra directory are needed in order to keep comment-based deviation up to date. Signed-off-by: Alessandro Zucchelli Reviewed-by: Stefano Stabellini (cherry picked from commit 631f535a3d4ffd66a270672f0f787d79f3bf38f8) (cherry picked from commit 8b584c97f88724a390fd17b08b2735f488d5f980) --- diff --git a/automation/eclair_analysis/ECLAIR/Set1.ecl b/automation/eclair_analysis/ECLAIR/Set1.ecl index 86b8e7e772..bcf1cc66c5 100644 --- a/automation/eclair_analysis/ECLAIR/Set1.ecl +++ b/automation/eclair_analysis/ECLAIR/Set1.ecl @@ -1,59 +1,59 @@ -doc_begin="Set 1 of Xen MISRA C guidelines" --enable=MC3R1.R9.1 --enable=MC3R1.R12.5 --enable=MC3R1.R17.3 --enable=MC3R1.R17.4 --enable=MC3R1.R17.6 --enable=MC3R1.R19.1 --enable=MC3R1.R21.13 --enable=MC3R1.R21.17 --enable=MC3R1.R21.18 --enable=MC3R1.R21.19 --enable=MC3R1.R21.20 --enable=MC3R1.R21.21 --enable=MC3R1.R22.2 --enable=MC3R1.R22.4 --enable=MC3R1.R22.5 --enable=MC3R1.R22.6 --enable=MC3R1.D1.1 --enable=MC3R1.D2.1 --enable=MC3R1.D4.1 --enable=MC3R1.D4.3 --enable=MC3R1.D4.7 --enable=MC3R1.D4.10 --enable=MC3R1.D4.11 --enable=MC3R1.D4.14 --enable=MC3R1.R1.1 --enable=MC3R1.R1.3 --enable=MC3R1.R1.4 --enable=MC3R1.R2.1 --enable=MC3R1.R2.2 --enable=MC3R1.R3.1 --enable=MC3R1.R3.2 --enable=MC3R1.R4.1 --enable=MC3R1.R5.1 --enable=MC3R1.R5.2 --enable=MC3R1.R5.3 --enable=MC3R1.R5.4 --enable=MC3R1.R5.6 --enable=MC3R1.R6.1 --enable=MC3R1.R6.2 --enable=MC3R1.R7.1 --enable=MC3R1.R7.2 --enable=MC3R1.R7.3 --enable=MC3R1.R7.4 --enable=MC3R1.R8.1 --enable=MC3R1.R8.2 --enable=MC3R1.R8.3 --enable=MC3R1.R8.4 --enable=MC3R1.R8.5 --enable=MC3R1.R8.6 --enable=MC3R1.R8.8 --enable=MC3R1.R8.10 --enable=MC3R1.R8.12 --enable=MC3R1.R8.14 --enable=MC3R1.R9.2 --enable=MC3R1.R9.3 --enable=MC3R1.R9.4 --enable=MC3R1.R9.5 +-enable=MC3A2.R9.1 +-enable=MC3A2.R12.5 +-enable=MC3A2.R17.3 +-enable=MC3A2.R17.4 +-enable=MC3A2.R17.6 +-enable=MC3A2.R19.1 +-enable=MC3A2.R21.13 +-enable=MC3A2.R21.17 +-enable=MC3A2.R21.18 +-enable=MC3A2.R21.19 +-enable=MC3A2.R21.20 +-enable=MC3A2.R21.21 +-enable=MC3A2.R22.2 +-enable=MC3A2.R22.4 +-enable=MC3A2.R22.5 +-enable=MC3A2.R22.6 +-enable=MC3A2.D1.1 +-enable=MC3A2.D2.1 +-enable=MC3A2.D4.1 +-enable=MC3A2.D4.3 +-enable=MC3A2.D4.7 +-enable=MC3A2.D4.10 +-enable=MC3A2.D4.11 +-enable=MC3A2.D4.14 +-enable=MC3A2.R1.1 +-enable=MC3A2.R1.3 +-enable=MC3A2.R1.4 +-enable=MC3A2.R2.1 +-enable=MC3A2.R2.2 +-enable=MC3A2.R3.1 +-enable=MC3A2.R3.2 +-enable=MC3A2.R4.1 +-enable=MC3A2.R5.1 +-enable=MC3A2.R5.2 +-enable=MC3A2.R5.3 +-enable=MC3A2.R5.4 +-enable=MC3A2.R5.6 +-enable=MC3A2.R6.1 +-enable=MC3A2.R6.2 +-enable=MC3A2.R7.1 +-enable=MC3A2.R7.2 +-enable=MC3A2.R7.3 +-enable=MC3A2.R7.4 +-enable=MC3A2.R8.1 +-enable=MC3A2.R8.2 +-enable=MC3A2.R8.3 +-enable=MC3A2.R8.4 +-enable=MC3A2.R8.5 +-enable=MC3A2.R8.6 +-enable=MC3A2.R8.8 +-enable=MC3A2.R8.10 +-enable=MC3A2.R8.12 +-enable=MC3A2.R8.14 +-enable=MC3A2.R9.2 +-enable=MC3A2.R9.3 +-enable=MC3A2.R9.4 +-enable=MC3A2.R9.5 -doc_end diff --git a/automation/eclair_analysis/ECLAIR/Set2.ecl b/automation/eclair_analysis/ECLAIR/Set2.ecl index 7608335cf4..f096d73adb 100644 --- a/automation/eclair_analysis/ECLAIR/Set2.ecl +++ b/automation/eclair_analysis/ECLAIR/Set2.ecl @@ -1,25 +1,25 @@ -doc_begin="Set 2 of Xen MISRA C guidelines" --enable=MC3R1.R10.1 --enable=MC3R1.R10.2 --enable=MC3R1.R10.3 --enable=MC3R1.R10.4 --enable=MC3R1.R10.6 --enable=MC3R1.R10.7 --enable=MC3R1.R10.8 --enable=MC3R1.R11.1 --enable=MC3R1.R11.2 --enable=MC3R1.R11.3 --enable=MC3R1.R11.6 --enable=MC3R1.R11.7 --enable=MC3R1.R11.8 --enable=MC3R1.R11.9 --enable=MC3R1.R12.2 --enable=MC3R1.R13.1 --enable=MC3R1.R13.2 --enable=MC3R1.R13.5 --enable=MC3R1.R13.6 --enable=MC3R1.R14.1 --enable=MC3R1.R14.2 --enable=MC3R1.R14.3 --enable=MC3R1.R14.4 +-enable=MC3A2.R10.1 +-enable=MC3A2.R10.2 +-enable=MC3A2.R10.3 +-enable=MC3A2.R10.4 +-enable=MC3A2.R10.6 +-enable=MC3A2.R10.7 +-enable=MC3A2.R10.8 +-enable=MC3A2.R11.1 +-enable=MC3A2.R11.2 +-enable=MC3A2.R11.3 +-enable=MC3A2.R11.6 +-enable=MC3A2.R11.7 +-enable=MC3A2.R11.8 +-enable=MC3A2.R11.9 +-enable=MC3A2.R12.2 +-enable=MC3A2.R13.1 +-enable=MC3A2.R13.2 +-enable=MC3A2.R13.5 +-enable=MC3A2.R13.6 +-enable=MC3A2.R14.1 +-enable=MC3A2.R14.2 +-enable=MC3A2.R14.3 +-enable=MC3A2.R14.4 -doc_end diff --git a/automation/eclair_analysis/ECLAIR/Set3.ecl b/automation/eclair_analysis/ECLAIR/Set3.ecl index d2c2c4b21f..6199939198 100644 --- a/automation/eclair_analysis/ECLAIR/Set3.ecl +++ b/automation/eclair_analysis/ECLAIR/Set3.ecl @@ -1,67 +1,67 @@ -doc_begin="Set 3 of Xen MISRA C guidelines" --enable=MC3R1.D4.12 --enable=MC3R1.R5.5 --enable=MC3R1.R5.7 --enable=MC3R1.R5.8 --enable=MC3R1.R15.2 --enable=MC3R1.R15.3 --enable=MC3R1.R15.6 --enable=MC3R1.R15.7 --enable=MC3R1.R16.1 --enable=MC3R1.R16.2 --enable=MC3R1.R16.3 --enable=MC3R1.R16.4 --enable=MC3R1.R16.5 --enable=MC3R1.R16.6 --enable=MC3R1.R16.7 --enable=MC3R1.R17.1 --enable=MC3R1.R17.2 --enable=MC3R1.R17.5 --enable=MC3R1.R17.7 --enable=MC3R1.R18.1 --enable=MC3R1.R18.2 --enable=MC3R1.R18.3 --enable=MC3R1.R18.6 --enable=MC3R1.R18.7 --enable=MC3R1.R18.8 --enable=MC3R1.R20.2 --enable=MC3R1.R20.3 --enable=MC3R1.R20.4 --enable=MC3R1.R20.6 --enable=MC3R1.R20.7 --enable=MC3R1.R20.8 --enable=MC3R1.R20.9 --enable=MC3R1.R20.11 --enable=MC3R1.R20.12 --enable=MC3R1.R20.13 --enable=MC3R1.R20.14 --enable=MC3R1.R21.1 --enable=MC3R1.R21.2 --enable=MC3R1.R21.3 --enable=MC3R1.R21.4 --enable=MC3R1.R21.5 --enable=MC3R1.R21.6 --enable=MC3R1.R21.7 --enable=MC3R1.R21.8 --enable=MC3R1.R21.9 --enable=MC3R1.R21.10 --enable=MC3R1.R21.12 --enable=MC3R1.R21.14 --enable=MC3R1.R21.15 --enable=MC3R1.R21.16 --enable=MC3R1.R22.1 --enable=MC3R1.R22.3 --enable=MC3R1.R22.7 --enable=MC3R1.R22.8 --enable=MC3R1.R22.9 --enable=MC3R1.R22.10 --enable=MC3R1.R2.6 --enable=MC3R1.R4.2 +-enable=MC3A2.D4.12 +-enable=MC3A2.R5.5 +-enable=MC3A2.R5.7 +-enable=MC3A2.R5.8 +-enable=MC3A2.R15.2 +-enable=MC3A2.R15.3 +-enable=MC3A2.R15.6 +-enable=MC3A2.R15.7 +-enable=MC3A2.R16.1 +-enable=MC3A2.R16.2 +-enable=MC3A2.R16.3 +-enable=MC3A2.R16.4 +-enable=MC3A2.R16.5 +-enable=MC3A2.R16.6 +-enable=MC3A2.R16.7 +-enable=MC3A2.R17.1 +-enable=MC3A2.R17.2 +-enable=MC3A2.R17.5 +-enable=MC3A2.R17.7 +-enable=MC3A2.R18.1 +-enable=MC3A2.R18.2 +-enable=MC3A2.R18.3 +-enable=MC3A2.R18.6 +-enable=MC3A2.R18.7 +-enable=MC3A2.R18.8 +-enable=MC3A2.R20.2 +-enable=MC3A2.R20.3 +-enable=MC3A2.R20.4 +-enable=MC3A2.R20.6 +-enable=MC3A2.R20.7 +-enable=MC3A2.R20.8 +-enable=MC3A2.R20.9 +-enable=MC3A2.R20.11 +-enable=MC3A2.R20.12 +-enable=MC3A2.R20.13 +-enable=MC3A2.R20.14 +-enable=MC3A2.R21.1 +-enable=MC3A2.R21.2 +-enable=MC3A2.R21.3 +-enable=MC3A2.R21.4 +-enable=MC3A2.R21.5 +-enable=MC3A2.R21.6 +-enable=MC3A2.R21.7 +-enable=MC3A2.R21.8 +-enable=MC3A2.R21.9 +-enable=MC3A2.R21.10 +-enable=MC3A2.R21.12 +-enable=MC3A2.R21.14 +-enable=MC3A2.R21.15 +-enable=MC3A2.R21.16 +-enable=MC3A2.R22.1 +-enable=MC3A2.R22.3 +-enable=MC3A2.R22.7 +-enable=MC3A2.R22.8 +-enable=MC3A2.R22.9 +-enable=MC3A2.R22.10 +-enable=MC3A2.R2.6 +-enable=MC3A2.R4.2 -doc_end -doc_begin="Guidelines added with Xen MISRA C Task (a): Xen Coding Guidelines v1.1, June 1, 2023" --enable=MC3R1.R21.11 --enable=MC3R1.D4.4 --enable=MC3R1.R8.9 --enable=MC3R1.R12.4 +-enable=MC3A2.R21.11 +-enable=MC3A2.D4.4 +-enable=MC3A2.R8.9 +-enable=MC3A2.R12.4 -doc_end diff --git a/automation/eclair_analysis/ECLAIR/analyze.sh b/automation/eclair_analysis/ECLAIR/analyze.sh index 47cdbb03ce..8311cdc809 100755 --- a/automation/eclair_analysis/ECLAIR/analyze.sh +++ b/automation/eclair_analysis/ECLAIR/analyze.sh @@ -40,7 +40,7 @@ ECLAIR_REPORT_LOG=${ECLAIR_OUTPUT_DIR}/REPORT.log if [[ "$1" = "X86_64" ]]; then export CROSS_COMPILE= export XEN_TARGET_ARCH=x86_64 - EXTRA_ECLAIR_ENV_OPTIONS=-disable=MC3R1.R20.7 + EXTRA_ECLAIR_ENV_OPTIONS=-disable=MC3A2.R20.7 elif [[ "$1" = "ARM64" ]]; then export CROSS_COMPILE=aarch64-linux-gnu- export XEN_TARGET_ARCH=arm64 diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl index d8170106b4..f9a3e5f33e 100644 --- a/automation/eclair_analysis/ECLAIR/deviations.ecl +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl @@ -6,21 +6,21 @@ -doc_begin="The compiler implementation guarantees that the unreachable code is removed. Constant expressions and unreachable branches of if and switch statements are expected." --config=MC3R1.R2.1,+reports={safe,"first_area(^.*has an invariantly.*$)"} --config=MC3R1.R2.1,+reports={safe,"first_area(^.*incompatible with labeled statement$)"} +-config=MC3A2.R2.1,+reports={safe,"first_area(^.*has an invariantly.*$)"} +-config=MC3A2.R2.1,+reports={safe,"first_area(^.*incompatible with labeled statement$)"} -doc_end -doc_begin="Some functions are intended to be not referenced." --config=MC3R1.R2.1,+reports={deliberate,"first_area(^.*is never referenced$)"} +-config=MC3A2.R2.1,+reports={deliberate,"first_area(^.*is never referenced$)"} -doc_end -doc_begin="Unreachability caused by calls to the following functions or macros is deliberate and there is no risk of code being unexpectedly left out." --config=MC3R1.R2.1,statements+={deliberate,"macro(name(BUG||assert_failed||ERROR_EXIT||ERROR_EXIT_DOM||PIN_FAIL))"} --config=MC3R1.R2.1,statements+={deliberate, "call(decl(name(__builtin_unreachable||panic||do_unexpected_trap||machine_halt||machine_restart||maybe_reboot)))"} +-config=MC3A2.R2.1,statements+={deliberate,"macro(name(BUG||assert_failed||ERROR_EXIT||ERROR_EXIT_DOM||PIN_FAIL))"} +-config=MC3A2.R2.1,statements+={deliberate, "call(decl(name(__builtin_unreachable||panic||do_unexpected_trap||machine_halt||machine_restart||maybe_reboot)))"} -doc_end -doc_begin="Unreachability of an ASSERT_UNREACHABLE() and analogous macro calls is deliberate and safe." --config=MC3R1.R2.1,reports+={deliberate, "any_area(any_loc(any_exp(macro(name(ASSERT_UNREACHABLE||PARSE_ERR_RET||PARSE_ERR||FAIL_MSR||FAIL_CPUID)))))"} +-config=MC3A2.R2.1,reports+={deliberate, "any_area(any_loc(any_exp(macro(name(ASSERT_UNREACHABLE||PARSE_ERR_RET||PARSE_ERR||FAIL_MSR||FAIL_CPUID)))))"} -doc_end -doc_begin="Proving compliance with respect to Rule 2.2 is generally impossible: @@ -29,7 +29,7 @@ confidence that no evidence of errors in the program's logic has been missed due to undetected violations of Rule 2.2, if any. Testing on time behavior gives us confidence on the fact that, should the program contain dead code that is not removed by the compiler, the resulting slowdown is negligible." --config=MC3R1.R2.2,reports+={disapplied,"any()"} +-config=MC3A2.R2.2,reports+={disapplied,"any()"} -doc_end # @@ -38,7 +38,7 @@ removed by the compiler, the resulting slowdown is negligible." -doc_begin="Comments starting with '/*' and containing hyperlinks are safe as they are not instances of commented-out code." --config=MC3R1.R3.1,reports+={safe, "first_area(text(^.*https?://.*$))"} +-config=MC3A2.R3.1,reports+={safe, "first_area(text(^.*https?://.*$))"} -doc_end # @@ -46,49 +46,49 @@ they are not instances of commented-out code." # -doc_begin="The directive has been accepted only for the ARM codebase." --config=MC3R1.D4.3,reports+={disapplied,"!(any_area(any_loc(file(^xen/arch/arm/arm64/.*$))))"} +-config=MC3A2.D4.3,reports+={disapplied,"!(any_area(any_loc(file(^xen/arch/arm/arm64/.*$))))"} -doc_end -doc_begin="Depending on the compiler, rewriting the following function-like macros as inline functions is not guaranteed to have the same effect." --config=MC3R1.D4.9,macros+={deliberate,"name(likely)"} --config=MC3R1.D4.9,macros+={deliberate,"name(unlikely)"} --config=MC3R1.D4.9,macros+={deliberate,"name(unreachable)"} +-config=MC3A2.D4.9,macros+={deliberate,"name(likely)"} +-config=MC3A2.D4.9,macros+={deliberate,"name(unlikely)"} +-config=MC3A2.D4.9,macros+={deliberate,"name(unreachable)"} -doc_end -doc_begin="These macros can be used on both pointers and unsigned long type values." --config=MC3R1.D4.9,macros+={safe,"name(virt_to_maddr)"} --config=MC3R1.D4.9,macros+={safe,"name(virt_to_mfn)"} +-config=MC3A2.D4.9,macros+={safe,"name(virt_to_maddr)"} +-config=MC3A2.D4.9,macros+={safe,"name(virt_to_mfn)"} -doc_end -doc_begin="Rewriting variadic macros as variadic functions might have a negative impact on safety." --config=MC3R1.D4.9,macros+={deliberate,"variadic()"} +-config=MC3A2.D4.9,macros+={deliberate,"variadic()"} -doc_end -doc_begin="Rewriting macros with arguments that are, in turn, arguments of __builtin_constant_p() can change the behavior depending on the optimization level." --config=MC3R1.D4.9,macro_argument_context+="skip_to(class(type||expr||decl,any), +-config=MC3A2.D4.9,macro_argument_context+="skip_to(class(type||expr||decl,any), call(name(__builtin_constant_p)))" -doc_end -doc_begin="Function-like macros defined in public headers are meant to be usable in C89 mode without any extensions. Hence they cannot be replaced by inline functions." --config=MC3R1.D4.9,macros+={deliberate, "loc(file(api:public))"} +-config=MC3A2.D4.9,macros+={deliberate, "loc(file(api:public))"} -doc_end -doc_begin="This header file is autogenerated or empty, therefore it poses no risk if included more than once." -file_tag+={empty_header, "^xen/arch/arm/efi/runtime\\.h$"} -file_tag+={autogen_headers, "^xen/include/xen/compile\\.h$||^xen/include/generated/autoconf.h$||^xen/include/xen/hypercall-defs.h$"} --config=MC3R1.D4.10,reports+={safe, "all_area(all_loc(file(empty_header||autogen_headers)))"} +-config=MC3A2.D4.10,reports+={safe, "all_area(all_loc(file(empty_header||autogen_headers)))"} -doc_end -doc_begin="Files that are intended to be included more than once do not need to conform to the directive." --config=MC3R1.D4.10,reports+={safe, "first_area(text(^/\\* This file is legitimately included multiple times\\. \\*/$, begin-4))"} --config=MC3R1.D4.10,reports+={safe, "first_area(text(^/\\* Generated file, do not edit! \\*/$, begin-3))"} +-config=MC3A2.D4.10,reports+={safe, "first_area(text(^/\\* This file is legitimately included multiple times\\. \\*/$, begin-4))"} +-config=MC3A2.D4.10,reports+={safe, "first_area(text(^/\\* Generated file, do not edit! \\*/$, begin-3))"} -doc_end # @@ -97,35 +97,35 @@ conform to the directive." -doc_begin="The project adopted the rule with an exception listed in 'docs/misra/rules.rst'" --config=MC3R1.R5.3,reports+={safe, "any_area(any_loc(any_exp(macro(^READ_SYSREG$))&&any_exp(macro(^WRITE_SYSREG$))))"} --config=MC3R1.R5.3,reports+={safe, "any_area(any_loc(any_exp(macro(^max(_t)?$))&&any_exp(macro(^min(_t)?$))))"} --config=MC3R1.R5.3,reports+={safe, "any_area(any_loc(any_exp(macro(^read[bwlq]$))&&any_exp(macro(^read[bwlq]_relaxed$))))"} --config=MC3R1.R5.3,reports+={safe, "any_area(any_loc(any_exp(macro(^per_cpu$))&&any_exp(macro(^this_cpu$))))"} --config=MC3R1.R5.3,reports+={safe, "any_area(any_loc(any_exp(macro(^__emulate_2op$))&&any_exp(macro(^__emulate_2op_nobyte$))))"} --config=MC3R1.R5.3,reports+={safe, "any_area(any_loc(any_exp(macro(^read_debugreg$))&&any_exp(macro(^write_debugreg$))))"} +-config=MC3A2.R5.3,reports+={safe, "any_area(any_loc(any_exp(macro(^READ_SYSREG$))&&any_exp(macro(^WRITE_SYSREG$))))"} +-config=MC3A2.R5.3,reports+={safe, "any_area(any_loc(any_exp(macro(^max(_t)?$))&&any_exp(macro(^min(_t)?$))))"} +-config=MC3A2.R5.3,reports+={safe, "any_area(any_loc(any_exp(macro(^read[bwlq]$))&&any_exp(macro(^read[bwlq]_relaxed$))))"} +-config=MC3A2.R5.3,reports+={safe, "any_area(any_loc(any_exp(macro(^per_cpu$))&&any_exp(macro(^this_cpu$))))"} +-config=MC3A2.R5.3,reports+={safe, "any_area(any_loc(any_exp(macro(^__emulate_2op$))&&any_exp(macro(^__emulate_2op_nobyte$))))"} +-config=MC3A2.R5.3,reports+={safe, "any_area(any_loc(any_exp(macro(^read_debugreg$))&&any_exp(macro(^write_debugreg$))))"} -doc_end -doc_begin="Function-like macros cannot be confused with identifiers that are neither functions nor pointers to functions." --config=MC3R1.R5.5,reports={safe,"all_area(decl(node(enum_decl||record_decl||field_decl||param_decl||var_decl)&&!type(canonical(address((node(function||function_no_proto))))))||macro(function_like()))"} +-config=MC3A2.R5.5,reports={safe,"all_area(decl(node(enum_decl||record_decl||field_decl||param_decl||var_decl)&&!type(canonical(address((node(function||function_no_proto))))))||macro(function_like()))"} -doc_end -doc_begin="The use of these identifiers for both macro names and other entities is deliberate and does not generate developer confusion." --config=MC3R1.R5.5,reports+={safe, "any_area(text(^\\s*/\\*\\s+SAF-[0-9]+-safe\\s+MC3R1\\.R5\\.5.*$, begin-1))"} +-config=MC3A2.R5.5,reports+={safe, "any_area(text(^\\s*/\\*\\s+SAF-[0-9]+-safe\\s+MC3A2\\.R5\\.5.*$, begin-1))"} -doc_end -doc_begin="The definition of macros and functions ending in '_bit' that use the same identifier in 'bitops.h' is deliberate and safe." -file_tag+={bitops_h, "^xen/arch/x86/include/asm/bitops\\.h$"} --config=MC3R1.R5.5,reports+={safe, "all_area((decl(^.*_bit\\(.*$)||macro(^.*_bit$))&&all_loc(file(bitops_h)))"} +-config=MC3A2.R5.5,reports+={safe, "all_area((decl(^.*_bit\\(.*$)||macro(^.*_bit$))&&all_loc(file(bitops_h)))"} -doc_end -doc_begin="The definition of macros and functions beginning in 'str' or 'mem' that use the same identifier in 'xen/include/xen/string.h' is deliberate and safe." -file_tag+={string_h, "^xen/include/xen/string\\.h$"} --config=MC3R1.R5.5,reports+={safe, "any_area((decl(^(mem|str).*$)||macro(^(mem|str).*$))&&all_loc(file(string_h)))"} +-config=MC3A2.R5.5,reports+={safe, "any_area((decl(^(mem|str).*$)||macro(^(mem|str).*$))&&all_loc(file(string_h)))"} -doc_end # @@ -135,7 +135,7 @@ safe." -doc_begin="Usage of the following constants is safe, since they are given as-is in the inflate algorithm specification and there is therefore no risk of them being interpreted as decimal constants." --config=MC3R1.R7.1,literals={safe, "^0(007|37|070|213|236|300|321|330|331|332|333|334|335|337|371)$"} +-config=MC3A2.R7.1,literals={safe, "^0(007|37|070|213|236|300|321|330|331|332|333|334|335|337|371)$"} -doc_end -doc_begin="Violations in files that maintainers have asked to not modify in the @@ -148,22 +148,22 @@ context of R7.2." -file_tag+={adopted_r7_2,"^xen/arch/x86/cpu/intel\\.c$"} -file_tag+={adopted_r7_2,"^xen/arch/x86/cpu/amd\\.c$"} -file_tag+={adopted_r7_2,"^xen/arch/x86/cpu/common\\.c$"} --config=MC3R1.R7.2,reports+={deliberate,"any_area(any_loc(file(adopted_r7_2)))"} +-config=MC3A2.R7.2,reports+={deliberate,"any_area(any_loc(file(adopted_r7_2)))"} -doc_end -doc_begin="Violations caused by __HYPERVISOR_VIRT_START are related to the particular use of it done in xen_mk_ulong." --config=MC3R1.R7.2,reports+={deliberate,"any_area(any_loc(macro(name(BUILD_BUG_ON))))"} +-config=MC3A2.R7.2,reports+={deliberate,"any_area(any_loc(macro(name(BUILD_BUG_ON))))"} -doc_end -doc_begin="The following string literals are assigned to pointers to non const-qualified char." --config=MC3R1.R7.4,reports+={safe, "any_area(text(^\\s*/\\*\\s+SAF-[0-9]+-safe\\s+MC3R1\\.R7\\.4.*$, begin-1))"} +-config=MC3A2.R7.4,reports+={safe, "any_area(text(^\\s*/\\*\\s+SAF-[0-9]+-safe\\s+MC3A2\\.R7\\.4.*$, begin-1))"} -doc_end -doc_begin="Allow pointers of non-character type as long as the pointee is const-qualified." --config=MC3R1.R7.4,same_pointee=false +-config=MC3A2.R7.4,same_pointee=false -doc_end # @@ -172,11 +172,11 @@ const-qualified." -doc_begin="The following file is imported from Linux: ignore for now." -file_tag+={adopted_r8_2,"^xen/common/inflate\\.c$"} --config=MC3R1.R8.2,reports+={deliberate,"any_area(any_loc(file(adopted_r8_2)))"} +-config=MC3A2.R8.2,reports+={deliberate,"any_area(any_loc(file(adopted_r8_2)))"} -doc_end -doc_begin="The type ret_t is deliberately used and defined as int or long depending on the architecture." --config=MC3R1.R8.3,reports+={deliberate,"any_area(any_loc(text(^.*ret_t.*$)))"} +-config=MC3A2.R8.3,reports+={deliberate,"any_area(any_loc(text(^.*ret_t.*$)))"} -doc_end -doc_begin="The following files are imported from Linux and decompress.h defines a unique and documented interface towards all the (adopted) decompress functions." @@ -186,36 +186,36 @@ const-qualified." -file_tag+={adopted_decompress_r8_3,"^xen/common/unlzo\\.c$"} -file_tag+={adopted_decompress_r8_3,"^xen/common/unxz\\.c$"} -file_tag+={adopted_decompress_r8_3,"^xen/common/unzstd\\.c$"} --config=MC3R1.R8.3,reports+={deliberate,"any_area(any_loc(file(adopted_decompress_r8_3)))&&any_area(any_loc(file(^xen/include/xen/decompress\\.h$)))"} +-config=MC3A2.R8.3,reports+={deliberate,"any_area(any_loc(file(adopted_decompress_r8_3)))&&any_area(any_loc(file(^xen/include/xen/decompress\\.h$)))"} -doc_end -doc_begin="The following file is imported from Linux: ignore for now." -file_tag+={adopted_time_r8_3,"^xen/arch/x86/time\\.c$"} --config=MC3R1.R8.3,reports+={deliberate,"any_area(any_loc(file(adopted_time_r8_3)))&&(any_area(any_loc(file(^xen/include/xen/time\\.h$)))||any_area(any_loc(file(^xen/arch/x86/include/asm/setup\\.h$))))"} +-config=MC3A2.R8.3,reports+={deliberate,"any_area(any_loc(file(adopted_time_r8_3)))&&(any_area(any_loc(file(^xen/include/xen/time\\.h$)))||any_area(any_loc(file(^xen/arch/x86/include/asm/setup\\.h$))))"} -doc_end -doc_begin="The following file is imported from Linux: ignore for now." -file_tag+={adopted_cpu_idle_r8_3,"^xen/arch/x86/acpi/cpu_idle\\.c$"} --config=MC3R1.R8.3,reports+={deliberate,"any_area(any_loc(file(adopted_cpu_idle_r8_3)))&&any_area(any_loc(file(^xen/include/xen/pmstat\\.h$)))"} +-config=MC3A2.R8.3,reports+={deliberate,"any_area(any_loc(file(adopted_cpu_idle_r8_3)))&&any_area(any_loc(file(^xen/include/xen/pmstat\\.h$)))"} -doc_end -doc_begin="The following file is imported from Linux: ignore for now." -file_tag+={adopted_mpparse_r8_3,"^xen/arch/x86/mpparse\\.c$"} --config=MC3R1.R8.3,reports+={deliberate,"any_area(any_loc(file(adopted_mpparse_r8_3)))&&any_area(any_loc(file(^xen/arch/x86/include/asm/mpspec\\.h$)))"} +-config=MC3A2.R8.3,reports+={deliberate,"any_area(any_loc(file(adopted_mpparse_r8_3)))&&any_area(any_loc(file(^xen/arch/x86/include/asm/mpspec\\.h$)))"} -doc_end -doc_begin="The following variables are compiled in multiple translation units belonging to different executables and therefore are safe." --config=MC3R1.R8.6,declarations+={safe, "name(current_stack_pointer||bsearch||sort)"} +-config=MC3A2.R8.6,declarations+={safe, "name(current_stack_pointer||bsearch||sort)"} -doc_end -doc_begin="Declarations without definitions are allowed (specifically when the definition is compiled-out or optimized-out by the compiler)" --config=MC3R1.R8.6,reports+={deliberate, "first_area(^.*has no definition$)"} +-config=MC3A2.R8.6,reports+={deliberate, "first_area(^.*has no definition$)"} -doc_end -doc_begin="The gnu_inline attribute without static is deliberately allowed." --config=MC3R1.R8.10,declarations+={deliberate,"property(gnu_inline)"} +-config=MC3A2.R8.10,declarations+={deliberate,"property(gnu_inline)"} -doc_end # @@ -225,18 +225,18 @@ definition is compiled-out or optimized-out by the compiler)" -doc_begin="The following variables are written before being set, therefore no access to uninitialized memory locations happens, as explained in the deviation comment." --config=MC3R1.R9.1,reports+={safe, "any_area(text(^\\s*/\\*\\s+SAF-[0-9]+-safe\\s+MC3R1\\.R9\\.1.*$, begin-1))"} +-config=MC3A2.R9.1,reports+={safe, "any_area(text(^\\s*/\\*\\s+SAF-[0-9]+-safe\\s+MC3A2\\.R9\\.1.*$, begin-1))"} -doc_end -doc_begin="Violations in files that maintainers have asked to not modify in the context of R9.1." -file_tag+={adopted_r9_1,"^xen/arch/arm/arm64/lib/find_next_bit\\.c$"} --config=MC3R1.R9.1,reports+={deliberate,"any_area(any_loc(file(adopted_r9_1)))"} +-config=MC3A2.R9.1,reports+={deliberate,"any_area(any_loc(file(adopted_r9_1)))"} -doc_end -doc_begin="The possibility of committing mistakes by specifying an explicit dimension is higher than omitting the dimension." --config=MC3R1.R9.5,reports+={deliberate, "any()"} +-config=MC3A2.R9.5,reports+={deliberate, "any()"} -doc_end ### Set 2 ### @@ -246,32 +246,32 @@ dimension is higher than omitting the dimension." # -doc_begin="The value-preserving conversions of integer constants are safe" --config=MC3R1.R10.1,etypes={safe,"any()","preserved_integer_constant()"} --config=MC3R1.R10.3,etypes={safe,"any()","preserved_integer_constant()"} --config=MC3R1.R10.4,etypes={safe,"any()","preserved_integer_constant()||sibling(rhs,preserved_integer_constant())"} +-config=MC3A2.R10.1,etypes={safe,"any()","preserved_integer_constant()"} +-config=MC3A2.R10.3,etypes={safe,"any()","preserved_integer_constant()"} +-config=MC3A2.R10.4,etypes={safe,"any()","preserved_integer_constant()||sibling(rhs,preserved_integer_constant())"} -doc_end -doc_begin="Shifting non-negative integers to the right is safe." --config=MC3R1.R10.1,etypes+={safe, +-config=MC3A2.R10.1,etypes+={safe, "stmt(node(binary_operator)&&operator(shr))", "src_expr(definitely_in(0..))"} -doc_end -doc_begin="Shifting non-negative integers to the left is safe if the result is still non-negative." --config=MC3R1.R10.1,etypes+={safe, +-config=MC3A2.R10.1,etypes+={safe, "stmt(node(binary_operator)&&operator(shl)&&definitely_in(0..))", "src_expr(definitely_in(0..))"} -doc_end -doc_begin="Bitwise logical operations on non-negative integers are safe." --config=MC3R1.R10.1,etypes+={safe, +-config=MC3A2.R10.1,etypes+={safe, "stmt(node(binary_operator)&&operator(and||or||xor))", "src_expr(definitely_in(0..))"} -doc_end -doc_begin="The implicit conversion to Boolean for logical operator arguments is well known to all Xen developers to be a comparison with 0" --config=MC3R1.R10.1,etypes+={safe, "stmt(operator(logical)||node(conditional_operator||binary_conditional_operator))", "dst_type(ebool||boolean)"} +-config=MC3A2.R10.1,etypes+={safe, "stmt(operator(logical)||node(conditional_operator||binary_conditional_operator))", "dst_type(ebool||boolean)"} -doc_end ### Set 3 ### @@ -281,15 +281,15 @@ still non-negative." # -doc_begin="FIXME: explain why pointer differences involving this macro are safe." --config=MC3R1.R18.2,reports+={safe,"all_area(all_loc(any_exp(macro(^ACPI_PTR_DIFF$))))"} +-config=MC3A2.R18.2,reports+={safe,"all_area(all_loc(any_exp(macro(^ACPI_PTR_DIFF$))))"} -doc_end -doc_begin="FIXME: explain why pointer differences involving this macro are safe." --config=MC3R1.R18.2,reports+={safe,"all_area(all_loc(any_exp(macro(^page_to_mfn$))))"} +-config=MC3A2.R18.2,reports+={safe,"all_area(all_loc(any_exp(macro(^page_to_mfn$))))"} -doc_end -doc_begin="FIXME: explain why pointer differences involving this macro are safe." --config=MC3R1.R18.2,reports+={safe,"all_area(all_loc(any_exp(macro(^page_to_pdx$))))"} +-config=MC3A2.R18.2,reports+={safe,"all_area(all_loc(any_exp(macro(^page_to_pdx$))))"} -doc_end # @@ -299,7 +299,7 @@ still non-negative." -doc_begin="Code violating Rule 20.7 is safe when macro parameters are used: (1) as function arguments; (2) as macro arguments; (3) as array indices; (4) as lhs in assignments." --config=MC3R1.R20.7,expansion_context= +-config=MC3A2.R20.7,expansion_context= {safe, "context(__call_expr_arg_contexts)"}, {safe, "context(skip_to(__expr_non_syntactic_contexts, stmt_child(node(array_subscript_expr), subscript)))"}, {safe, "context(skip_to(__expr_non_syntactic_contexts, stmt_child(operator(assign), lhs)))"}, @@ -317,7 +317,7 @@ in assignments." programmers:no developers' confusion is not possible. In addition, adopted code is assumed to work as is. Reports that are fully contained in adopted code are hidden/tagged with the 'adopted' tag." --service_selector={developer_confusion_guidelines,"^(MC3R1\\.R2\\.1|MC3R1\\.R2\\.2|MC3R1\\.R2\\.3|MC3R1\\.R2\\.4|MC3R1\\.R2\\.5|MC3R1\\.R2\\.6|MC3R1\\.R2\\.7|MC3R1\\.R4\\.1|MC3R1\\.R5\\.3|MC3R1\\.R5\\.6|MC3R1\\.R5\\.7|MC3R1\\.R5\\.8|MC3R1\\.R5\\.9|MC3R1\\.R7\\.1|MC3R1\\.R7\\.2|MC3R1\\.R7\\.3|MC3R1\\.R8\\.7|MC3R1\\.R8\\.8|MC3R1\\.R8\\.9|MC3R1\\.R8\\.11|MC3R1\\.R8\\.12|MC3R1\\.R8\\.13|MC3R1\\.R9\\.3|MC3R1\\.R9\\.4|MC3R1\\.R9\\.5|MC3R1\\.R10\\.2|MC3R1\\.R10\\.5|MC3R1\\.R10\\.6|MC3R1\\.R10\\.7|MC3R1\\.R10\\.8|MC3R1\\.R11\\.9|MC3R1\\.R12\\.1|MC3R1\\.R12\\.3|MC3R1\\.R12\\.4|MC3R1\\.R13\\.5|MC3R1\\.R14\\.1|MC3R1\\.R14\\.2|MC3R1\\.R14\\.3|MC3R1\\.R15\\.1|MC3R1\\.R15\\.2|MC3R1\\.R15\\.3|MC3R1\\.R15\\.4|MC3R1\\.R15\\.5|MC3R1\\.R15\\.6|MC3R1\\.R15\\.7|MC3R1\\.R16\\.1|MC3R1\\.R16\\.2|MC3R1\\.R16\\.3|MC3R1\\.R16\\.4|MC3R1\\.R16\\.5|MC3R1\\.R16\\.6|MC3R1\\.R16\\.7|MC3R1\\.R17\\.7|MC3R1\\.R17\\.8|MC3R1\\.R18\\.4|MC3R1\\.R18\\.5)$" +-service_selector={developer_confusion_guidelines,"^(MC3A2\\.R2\\.1|MC3A2\\.R2\\.2|MC3A2\\.R2\\.3|MC3A2\\.R2\\.4|MC3A2\\.R2\\.5|MC3A2\\.R2\\.6|MC3A2\\.R2\\.7|MC3A2\\.R4\\.1|MC3A2\\.R5\\.3|MC3A2\\.R5\\.6|MC3A2\\.R5\\.7|MC3A2\\.R5\\.8|MC3A2\\.R5\\.9|MC3A2\\.R7\\.1|MC3A2\\.R7\\.2|MC3A2\\.R7\\.3|MC3A2\\.R8\\.7|MC3A2\\.R8\\.8|MC3A2\\.R8\\.9|MC3A2\\.R8\\.11|MC3A2\\.R8\\.12|MC3A2\\.R8\\.13|MC3A2\\.R9\\.3|MC3A2\\.R9\\.4|MC3A2\\.R9\\.5|MC3A2\\.R10\\.2|MC3A2\\.R10\\.5|MC3A2\\.R10\\.6|MC3A2\\.R10\\.7|MC3A2\\.R10\\.8|MC3A2\\.R11\\.9|MC3A2\\.R12\\.1|MC3A2\\.R12\\.3|MC3A2\\.R12\\.4|MC3A2\\.R13\\.5|MC3A2\\.R14\\.1|MC3A2\\.R14\\.2|MC3A2\\.R14\\.3|MC3A2\\.R15\\.1|MC3A2\\.R15\\.2|MC3A2\\.R15\\.3|MC3A2\\.R15\\.4|MC3A2\\.R15\\.5|MC3A2\\.R15\\.6|MC3A2\\.R15\\.7|MC3A2\\.R16\\.1|MC3A2\\.R16\\.2|MC3A2\\.R16\\.3|MC3A2\\.R16\\.4|MC3A2\\.R16\\.5|MC3A2\\.R16\\.6|MC3A2\\.R16\\.7|MC3A2\\.R17\\.7|MC3A2\\.R17\\.8|MC3A2\\.R18\\.4|MC3A2\\.R18\\.5)$" } -config=developer_confusion_guidelines,reports+={relied,adopted_report} -doc_end diff --git a/automation/eclair_analysis/ECLAIR/tagging.ecl b/automation/eclair_analysis/ECLAIR/tagging.ecl index 3f589fd716..a851127b72 100644 --- a/automation/eclair_analysis/ECLAIR/tagging.ecl +++ b/automation/eclair_analysis/ECLAIR/tagging.ecl @@ -18,7 +18,7 @@ ####################### -doc="Accepted guidelines as reported in XEN/docs/misra/rules.rst" --service_selector={accepted_guidelines,"^(MC3R1\\.D1\\.1|MC3R1\\.D2\\.1|MC3R1\\.D4\\.3|MC3R1\\.D4\\.7|MC3R1\\.D4\\.10|MC3R1\\.D4\\.11|MC3R1\\.D4\\.14|MC3R1\\.R1\\.1|MC3R1\\.R1\\.3|MC3R1\\.R1\\.4|MC3R1\\.R2\\.1|MC3R1\\.R2\\.6|MC3R1\\.R2\\.2|MC3R1\\.R3\\.1|MC3R1\\.R3\\.2|MC3R1\\.R4\\.1|MC3R1\\.R4\\.2|MC3R1\\.R5\\.1|MC3R1\\.R5\\.2|MC3R1\\.R5\\.3|MC3R1\\.R5\\.4|MC3R1\\.R5\\.6|MC3R1\\.R6\\.1|MC3R1\\.R6\\.2|MC3R1\\.R7\\.1|MC3R1\\.R7\\.2|MC3R1\\.R7\\.3|MC3R1\\.R7\\.4|MC3R1\\.R8\\.1|MC3R1\\.R8\\.2|MC3R1\\.R8\\.3|MC3R1\\.R8\\.4|MC3R1\\.R8\\.5|MC3R1\\.R8\\.6|MC3R1\\.R8\\.8|MC3R1\\.R8\\.10|MC3R1\\.R8\\.12|MC3R1\\.R8\\.14|MC3R1\\.R9\\.1|MC3R1\\.R9\\.2|MC3R1\\.R9\\.3|MC3R1\\.R9\\.4|MC3R1\\.R9\\.5|MC3R1\\.R12\\.5|MC3R1\\.R13\\.6|MC3R1\\.R13\\.1|MC3R1\\.R14\\.1|MC3R1\\.R16\\.7|MC3R1\\.R17\\.3|MC3R1\\.R17\\.4|MC3R1\\.R17\\.6|MC3R1\\.R18\\.3|MC3R1\\.R19\\.1|MC3R1\\.R20\\.7|MC3R1\\.R20\\.13|MC3R1\\.R20\\.14|MC3R1\\.R21\\.13|MC3R1\\.R21\\.17|MC3R1\\.R21\\.18|MC3R1\\.R21\\.19|MC3R1\\.R21\\.20|MC3R1\\.R21\\.21|MC3R1\\.R22\\.2|MC3R1\\.R22\\.4|MC3R1\\.R22\\.5|MC3R1\\.R22\\.6)$" +-service_selector={accepted_guidelines,"^(MC3A2\\.D1\\.1|MC3A2\\.D2\\.1|MC3A2\\.D4\\.3|MC3A2\\.D4\\.7|MC3A2\\.D4\\.10|MC3A2\\.D4\\.11|MC3A2\\.D4\\.14|MC3A2\\.R1\\.1|MC3A2\\.R1\\.3|MC3A2\\.R1\\.4|MC3A2\\.R2\\.1|MC3A2\\.R2\\.6|MC3A2\\.R2\\.2|MC3A2\\.R3\\.1|MC3A2\\.R3\\.2|MC3A2\\.R4\\.1|MC3A2\\.R4\\.2|MC3A2\\.R5\\.1|MC3A2\\.R5\\.2|MC3A2\\.R5\\.3|MC3A2\\.R5\\.4|MC3A2\\.R5\\.6|MC3A2\\.R6\\.1|MC3A2\\.R6\\.2|MC3A2\\.R7\\.1|MC3A2\\.R7\\.2|MC3A2\\.R7\\.3|MC3A2\\.R7\\.4|MC3A2\\.R8\\.1|MC3A2\\.R8\\.2|MC3A2\\.R8\\.3|MC3A2\\.R8\\.4|MC3A2\\.R8\\.5|MC3A2\\.R8\\.6|MC3A2\\.R8\\.8|MC3A2\\.R8\\.10|MC3A2\\.R8\\.12|MC3A2\\.R8\\.14|MC3A2\\.R9\\.1|MC3A2\\.R9\\.2|MC3A2\\.R9\\.3|MC3A2\\.R9\\.4|MC3A2\\.R9\\.5|MC3A2\\.R12\\.5|MC3A2\\.R13\\.6|MC3A2\\.R13\\.1|MC3A2\\.R14\\.1|MC3A2\\.R16\\.7|MC3A2\\.R17\\.3|MC3A2\\.R17\\.4|MC3A2\\.R17\\.6|MC3A2\\.R18\\.3|MC3A2\\.R19\\.1|MC3A2\\.R20\\.7|MC3A2\\.R20\\.13|MC3A2\\.R20\\.14|MC3A2\\.R21\\.13|MC3A2\\.R21\\.17|MC3A2\\.R21\\.18|MC3A2\\.R21\\.19|MC3A2\\.R21\\.20|MC3A2\\.R21\\.21|MC3A2\\.R22\\.2|MC3A2\\.R22\\.4|MC3A2\\.R22\\.5|MC3A2\\.R22\\.6)$" } -doc="All reports of accepted guidelines are tagged as accepted." -reports+={status:accepted,"service(accepted_guidelines)"} @@ -29,17 +29,17 @@ -doc_begin="Clean guidelines: new violations for these guidelines are not accepted." --service_selector={clean_guidelines_common,"^(MC3R1\\.D1\\.1|MC3R1\\.D2\\.1|MC3R1\\.D4\\.11|MC3R1\\.D4\\.14|MC3R1\\.R1\\.1|MC3R1\\.R1\\.3|MC3R1\\.R1\\.4|MC3R1\\.R2\\.2|MC3R1\\.R3\\.1|MC3R1\\.R3\\.2|MC3R1\\.R4\\.1|MC3R1\\.R5\\.1|MC3R1\\.R5\\.2|MC3R1\\.R5\\.4|MC3R1\\.R6\\.1|MC3R1\\.R6\\.2|MC3R1\\.R7\\.1|MC3R1\\.R8\\.1|MC3R1\\.R8\\.5|MC3R1\\.R8\\.8|MC3R1\\.R8\\.10|MC3R1\\.R8\\.12|MC3R1\\.R8\\.14|MC3R1\\.R9\\.2|MC3R1\\.R9\\.4|MC3R1\\.R9\\.5|MC3R1\\.R12\\.5|MC3R1\\.R17\\.3|MC3R1\\.R17\\.4|MC3R1\\.R17\\.6|MC3R1\\.R21\\.13|MC3R1\\.R21\\.19|MC3R1\\.R21\\.21|MC3R1\\.R22\\.2|MC3R1\\.R22\\.4|MC3R1\\.R22\\.5|MC3R1\\.R22\\.6)$" +-service_selector={clean_guidelines_common,"^(MC3A2\\.D1\\.1|MC3A2\\.D2\\.1|MC3A2\\.D4\\.11|MC3A2\\.D4\\.14|MC3A2\\.R1\\.1|MC3A2\\.R1\\.3|MC3A2\\.R1\\.4|MC3A2\\.R2\\.2|MC3A2\\.R3\\.1|MC3A2\\.R3\\.2|MC3A2\\.R4\\.1|MC3A2\\.R5\\.1|MC3A2\\.R5\\.2|MC3A2\\.R5\\.4|MC3A2\\.R6\\.1|MC3A2\\.R6\\.2|MC3A2\\.R7\\.1|MC3A2\\.R8\\.1|MC3A2\\.R8\\.5|MC3A2\\.R8\\.8|MC3A2\\.R8\\.10|MC3A2\\.R8\\.12|MC3A2\\.R8\\.14|MC3A2\\.R9\\.2|MC3A2\\.R9\\.4|MC3A2\\.R9\\.5|MC3A2\\.R12\\.5|MC3A2\\.R17\\.3|MC3A2\\.R17\\.4|MC3A2\\.R17\\.6|MC3A2\\.R21\\.13|MC3A2\\.R21\\.19|MC3A2\\.R21\\.21|MC3A2\\.R22\\.2|MC3A2\\.R22\\.4|MC3A2\\.R22\\.5|MC3A2\\.R22\\.6)$" } -setq=target,getenv("XEN_TARGET_ARCH") if(string_equal(target,"x86_64"), - service_selector({"additional_clean_guidelines","^(MC3R1\\.D4\\.3)$"}) + service_selector({"additional_clean_guidelines","^(MC3A2\\.D4\\.3)$"}) ) if(string_equal(target,"arm64"), - service_selector({"additional_clean_guidelines","^(MC3R1\\.R5\\.3|MC3R1\\.R7\\.2|MC3R1\\.R8\\.6|MC3R1\\.R9\\.3)$"}) + service_selector({"additional_clean_guidelines","^(MC3A2\\.R5\\.3|MC3A2\\.R7\\.2|MC3A2\\.R8\\.6|MC3A2\\.R9\\.3)$"}) ) -reports+={clean:added,"service(clean_guidelines_common||additional_clean_guidelines)"} diff --git a/docs/misra/documenting-violations.rst b/docs/misra/documenting-violations.rst index 0d02a8e6f9..5b71d4e21e 100644 --- a/docs/misra/documenting-violations.rst +++ b/docs/misra/documenting-violations.rst @@ -53,7 +53,7 @@ Here is an example to add a new justification in safe.json:: | "analyser": { | "cppcheck": "misra-c2012-20.7", | "coverity": "misra_c_2012_rule_20_7_violation", -| "eclair": "MC3R1.R20.7" +| "eclair": "MC3A2.R20.7" | }, | "name": "R20.7 C macro parameters not used as expression", | "text": "The macro parameters used in this [...]" @@ -138,7 +138,7 @@ for the Rule 8.6: Eclair reports it in its web report, file xen/include/xen/kernel.h, line 68: -| MC3R1.R8.6 for program 'xen/xen-syms', variable '_start' has no definition +| MC3A2.R8.6 for program 'xen/xen-syms', variable '_start' has no definition Also coverity reports it, here is an extract of the finding: @@ -165,7 +165,7 @@ We will prepare our entry in the safe.json database:: | { | "id": "SAF-1-safe", | "analyser": { -| "eclair": "MC3R1.R8.6", +| "eclair": "MC3A2.R8.6", | "coverity": "misra_c_2012_rule_8_6_violation" | }, | "name": "Rule 8.6: linker script defined symbols", diff --git a/docs/misra/safe.json b/docs/misra/safe.json index 39c5c056c7..773cfe26e4 100644 --- a/docs/misra/safe.json +++ b/docs/misra/safe.json @@ -4,7 +4,7 @@ { "id": "SAF-0-safe", "analyser": { - "eclair": "MC3R1.R8.6", + "eclair": "MC3A2.R8.6", "coverity": "misra_c_2012_rule_8_6_violation" }, "name": "Rule 8.6: linker script defined symbols", @@ -13,7 +13,7 @@ { "id": "SAF-1-safe", "analyser": { - "eclair": "MC3R1.R8.4" + "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."