Mailing List Archive

[XEN PATCH 05/10] EFI: address violations of MISRA C Rule 20.7
MISRA C Rule 20.7 states: "Expressions resulting from the expansion
of macro parameters shall be enclosed in parentheses". Therefore, some
macro definitions should gain additional parentheses to ensure that all
current and future users will be safe with respect to expansions that
can possibly alter the semantics of the passed-in macro parameter.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
This file is matched by exclude-list.json, but the fix is rather trivial
and actually benefits code that is in scope for compliance.
---
xen/include/efi/efierr.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/include/efi/efierr.h b/xen/include/efi/efierr.h
index dfd3d3cf4867..2ecde0b31302 100644
--- a/xen/include/efi/efierr.h
+++ b/xen/include/efi/efierr.h
@@ -22,7 +22,7 @@ Revision History


#define EFIWARN(a) (a)
-#define EFI_ERROR(a) (((INTN) a) < 0)
+#define EFI_ERROR(a) (((INTN)(a)) < 0)


#define EFI_SUCCESS 0
--
2.34.1
Re: [XEN PATCH 05/10] EFI: address violations of MISRA C Rule 20.7 [ In reply to ]
On 18.03.2024 12:53, Nicola Vetrini wrote:
> MISRA C Rule 20.7 states: "Expressions resulting from the expansion
> of macro parameters shall be enclosed in parentheses". Therefore, some
> macro definitions should gain additional parentheses to ensure that all
> current and future users will be safe with respect to expansions that
> can possibly alter the semantics of the passed-in macro parameter.
>
> No functional change.
>
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
> This file is matched by exclude-list.json, but the fix is rather trivial
> and actually benefits code that is in scope for compliance.

Hmm, yes, the change is simple enough to not be a big hindrance even if we
were to pull in incremental updates from gnu-efi, so
Acked-by: Jan Beulich <jbeulich@suse.com>

Albeit preferably with ...

> --- a/xen/include/efi/efierr.h
> +++ b/xen/include/efi/efierr.h
> @@ -22,7 +22,7 @@ Revision History
>
>
> #define EFIWARN(a) (a)
> -#define EFI_ERROR(a) (((INTN) a) < 0)
> +#define EFI_ERROR(a) (((INTN)(a)) < 0)

... excess parentheses dropped in exchange:

#define EFI_ERROR(a) ((INTN)(a) < 0)

I may take the liberty of doing so while committing.

Jan