|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [XEN PATCH 7/7] x86/xstate: move BUILD_BUG_ON to address MISRA C:2012 Rule 2.1
On Mon, 11 Dec 2023, Nicola Vetrini wrote:
> The string literal inside the expansion of BUILD_BUG_ON is considered
> unreachable code; however, such statement can be moved earlier
> with no functional change.
>
> Signed-off-by: Nicola Vetrini <nicola.vetrini@xxxxxxxxxxx>
> ---
> The motivation for this code movement is that keeping it inside the switch
> statement matches MISRA's definition of unreachable code, but does not fall
> into
> the category of declarations without initialization, which is already a
> deviated
> aspect. An alternative approach would be to deviate BUILD_BUG_ON as well.
I think that deviating BUILD_BUG_ON would be totally fine. But given
that this patch is obviously correct:
Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
> ---
> xen/arch/x86/xstate.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/xen/arch/x86/xstate.c b/xen/arch/x86/xstate.c
> index cf94761d0542..99f0526c8988 100644
> --- a/xen/arch/x86/xstate.c
> +++ b/xen/arch/x86/xstate.c
> @@ -396,9 +396,10 @@ void xrstor(struct vcpu *v, uint64_t mask)
> */
> for ( prev_faults = faults = 0; ; prev_faults = faults )
> {
> + BUILD_BUG_ON(sizeof(faults) != 4); /* Clang doesn't support %z in
> asm. */
> +
> switch ( __builtin_expect(ptr->fpu_sse.x[FPU_WORD_SIZE_OFFSET], 8) )
> {
> - BUILD_BUG_ON(sizeof(faults) != 4); /* Clang doesn't support %z
> in asm. */
> #define _xrstor(insn) \
> asm volatile ( "1: .byte " insn "\n" \
> "3:\n" \
> --
> 2.34.1
>
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |