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

Re: [XEN PATCH 2/7] x86/mm: address MISRA C:2012 Rule 2.1



On 2023-12-14 08:57, Jan Beulich wrote:
On 13.12.2023 15:44, Nicola Vetrini wrote:
On 2023-12-12 10:53, Jan Beulich wrote:
On 12.12.2023 10:12, Nicola Vetrini wrote:
On 2023-12-12 02:42, Stefano Stabellini wrote:
On Mon, 11 Dec 2023, Nicola Vetrini wrote:
The "return 0" after the swich statement in 'xen/arch/x86/mm.c'
is unreachable because all switch clauses end with returns.
However, some of them can be substituted with "break"s to allow
the "return 0" outside the switch to be reachable.

No functional changes.

This is correct but makes the code inconsistent. I would either
remove
the return 0; at the end of arch_memory_op, or do the following:

- initialize rc to 0 at the beginning: int rc = 0;
- all switch clauses break instead of return;
- at the end: return rc;

Given the feedback on the Arm side, the first solution is likely to be
preferred.

I wouldn't mind either option, with
- the former ensured to be okay with all compiler versions we (still)
  support,

I tested a stripped-down version of the switch on godbolt.org (as far
back as gcc-4.8.5) and it doesn't complain. It should be tested on a
real Xen build, though.

I didn't fear any issue when going back to just 4.8. Quoting ./README:

      - For x86:
        - GCC 4.1.2_20070115 or later


I found no issue in 4.1.2 (see https://godbolt.org/z/cxecnKseG)

- the latter having the initialize rc to 0 part dropped; imo it's
better
if every case block makes sure to set the intended value explicitly.

This is a lot of churn, I'd rather avoid it.

Rant (sorry): There's already excessive churn for entirely benign issues
that Misra claims need adjusting.

Jan

--
Nicola Vetrini, BSc
Software Engineer, BUGSENG srl (https://bugseng.com)



 


Rackspace

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