[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v1] misra: add deviation for rules 21.1 and 21.2


  • To: Nicola Vetrini <nicola.vetrini@xxxxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@xxxxxxxx>
  • Date: Wed, 2 Jul 2025 09:55:01 +0000
  • Accept-language: en-US, uk-UA, ru-RU
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com; dkim=pass header.d=epam.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=OQKjWxgzYT7ygLGRqhhm4QAwqPOwNt5zbZ6JPFLLbd0=; b=DLosWPeR8pupYkHOAFKCicBwIMgUXlS1Fef+V+OmIG2hdy/7GAg9YPejn1ECHpyBOirGnlGtmRDbMx1zuRnxrL+jceLjgIY0nc1lsJhXfBPKGScyLeqCdYqRxc2IAkNO/ra2sz9cd7EkqKgCQ9c37dDWL+gWxhE6feqJ2EMDmvI2XnFySDuLz8Ew4qP/bXs/alPr5rpaYbLv0JpvxEI8SHK03dNsjYWrqI1Z6o/XiqNYrY9rWce7aPLRVkSdLsqptUCD8S7c65pxHmlxqtASs2g1bcal8CWPtajfk0isXiMusUD1gbRLCxxzHD6D1X6aS/Zr6K7R9L33AHR/tvMviw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=e3/0HCeNSyVdcZNI0+vCp3HtA2PBEOTldaR0jM+GxRDiNdkNhkOoYGJ0p5hZyF+C7dgou6axNzvq/tI/sr9bp4IhQu72zjYCMdO54JlX4UwPcEvGP1ILxkOkKn23QwwIqMvf5AYdybjcqzKQtNosdS9y8rfkYReOUWz9Cwd+AMBWcePpNl+Lly2b5IaFGBEWipLZ4R1XztIl03dewSzDgHLiKEjiQiSdFs6yNKOv0ND8nhCrjnHoeYvCHoXn8qUZe4U6uydb2dVU0S/m/pbp6ta6dUV+LVL9K7frxsxwg5daxnzFnPCR7r+2U/sBTstX8Oc5mxn+DqBrNjgSMwRM1g==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=epam.com;
  • Cc: "victorm.lira@xxxxxxx" <victorm.lira@xxxxxxx>, Federico Serafini <federico.serafini@xxxxxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Julien Grall <julien@xxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>
  • Delivery-date: Wed, 02 Jul 2025 09:55:20 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHb6zdYR1gSdiVnIUCrYyKDMVwLGw==
  • Thread-topic: [PATCH v1] misra: add deviation for rules 21.1 and 21.2

Hello, Nicola!

Would you mind if I take part of your patch (related to MISRA C Rule 
21.1) and upstream it?

BR, Dmytro.

On 4/23/25 20:54, victorm.lira@xxxxxxx wrote:
> From: Nicola Vetrini <nicola.vetrini@xxxxxxxxxxx>
> 
> MISRA C Rules 21.1 ("#define and #undef shall not be used on a
> reserved identifier or reserved macro name") and R21.2 ("A reserved
> identifier or reserved macro name shall not be declared") violations
> are not problematic for Xen, as it does not use the C or POSIX
> libraries.
> 
> Xen uses -fno-builtin and -nostdinc to ensure this, but there are still
> __builtin_* functions from the compiler that are available so
> a deviation is formulated for all identifiers not starting with
> "__builtin_".
> 
> The missing text of a deviation for Rule 21.2 is added to
> docs/misra/deviations.rst.
> 
> To avoid regressions, tag both rules as clean and add them to the
> monitored set.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@xxxxxxxxxxx>
> Signed-off-by: Federico Serafini <federico.serafini@xxxxxxxxxxx>
> Signed-off-by: Victor Lira <victorm.lira@xxxxxxx>
> ---
> Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
> Cc: Anthony PERARD <anthony.perard@xxxxxxxxxx>
> Cc: Michal Orzel <michal.orzel@xxxxxxx>
> Cc: Jan Beulich <jbeulich@xxxxxxxx>
> Cc: Julien Grall <julien@xxxxxxx>
> Cc: Roger Pau Monné <roger.pau@xxxxxxxxxx>
> Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx>
> Cc: Nicola Vetrini <nicola.vetrini@xxxxxxxxxxx>
> Cc: Federico Serafini <federico.serafini@xxxxxxxxxxx>
> Cc: Bertrand Marquis <bertrand.marquis@xxxxxxx>
> ---
>   .../eclair_analysis/ECLAIR/deviations.ecl     |  9 ++++++-
>   .../eclair_analysis/ECLAIR/monitored.ecl      |  2 ++
>   automation/eclair_analysis/ECLAIR/tagging.ecl |  2 ++
>   docs/misra/deviations.rst                     | 26 ++++++++++++++++++-
>   4 files changed, 37 insertions(+), 2 deletions(-)
> 
> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl 
> b/automation/eclair_analysis/ECLAIR/deviations.ecl
> index 2c8fb92713..ffa23b53b7 100644
> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> @@ -639,8 +639,15 @@ in the expansion."
>   # Series 21.
>   #
> 
> +-doc_begin="Xen does not use C and POSIX libraries:
> +identifiers reserved by these libraries can be used safely, except for those
> +beginning with '__builtin_'."
> +-config=MC3A2.R21.1,macros={safe, "!^__builtin_.*$"}
> +-config=MC3A2.R21.2,declarations={safe, "!^__builtin_.*$"}
> +-doc_end
> +
>   -doc_begin="or, and and xor are reserved identifiers because they 
> constitute alternate
> -spellings for the corresponding operators (they are defined as macros by 
> iso646.h).
> +spellings for the corresponding logical operators (as defined in header 
> 'iso646.h').
>   However, Xen doesn't use standard library headers, so there is no risk of 
> overlap."
>   -config=MC3A2.R21.2,reports+={safe, 
> "any_area(stmt(ref(kind(label)&&^(or|and|xor|not)$)))"}
>   -doc_end
> diff --git a/automation/eclair_analysis/ECLAIR/monitored.ecl 
> b/automation/eclair_analysis/ECLAIR/monitored.ecl
> index 8351996ec8..da229a0d84 100644
> --- a/automation/eclair_analysis/ECLAIR/monitored.ecl
> +++ b/automation/eclair_analysis/ECLAIR/monitored.ecl
> @@ -79,6 +79,8 @@
>   -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
> diff --git a/automation/eclair_analysis/ECLAIR/tagging.ecl 
> b/automation/eclair_analysis/ECLAIR/tagging.ecl
> index 1d078d8905..3292bf751e 100644
> --- a/automation/eclair_analysis/ECLAIR/tagging.ecl
> +++ b/automation/eclair_analysis/ECLAIR/tagging.ecl
> @@ -88,6 +88,8 @@ MC3A2.R20.11||
>   MC3A2.R20.12||
>   MC3A2.R20.13||
>   MC3A2.R20.14||
> +MC3A2.R21.1||
> +MC3A2.R21.2||
>   MC3A2.R21.3||
>   MC3A2.R21.4||
>   MC3A2.R21.5||
> diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
> index fe0b1e10a2..88328eaa8a 100644
> --- a/docs/misra/deviations.rst
> +++ b/docs/misra/deviations.rst
> @@ -587,7 +587,31 @@ Deviations related to MISRA C:2012 Rules:
>          construct is deviated only in Translation Units that present a 
> violation
>          of the Rule due to uses of this macro.
>        - Tagged as `deliberate` for ECLAIR.
> -
> +
> +   * - R21.1
> +     - Rule 21.1 reports identifiers reserved for the C and POSIX standard
> +       libraries. Xen does not use such libraries and all translation units
> +       are compiled with option '-nostdinc', therefore there is no reason to
> +       avoid to use `#define` or `#undef` on such identifiers except for 
> those
> +       beginning with `__builtin_` for which compilers may perform (wrong)
> +       optimizations.
> +     - Tagged as `safe` for ECLAIR.
> +
> +   * - R21.2
> +     - Rule 21.2 reports identifiers reserved for the C and POSIX standard
> +       libraries. Xen does not use such libraries and all translation units
> +       are compiled with option '-nostdinc', therefore there is no reason to
> +       avoid declaring such identifiers except for those beginning with
> +       `__builtin_` for which compilers may perform (wrong) optimizations.
> +     - Tagged as `safe` for ECLAIR.
> +
> +   * - R21.2
> +     - `or`, `and` and `xor` are reserved identifiers because they constitute
> +       alternate spellings for the corresponding logical operators
> +       (as defined in Standard Library header `\<iso646.h\>`). Xen does not 
> use
> +       Standard library headers, so there is no risk of overlap.
> +     - Tagged as `safe` for ECLAIR.
> +
>      * - R21.9
>        - Xen does not use the `bsearch` and `qsort` functions provided by the 
> C
>          Standard Library, but provides in source form its own implementation,
> --
> 2.47.0
> 
> 

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.