[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 3/3] xen/MISRA: Remove nonstandard inline keywords
On 2023-11-22 17:46, Andrew Cooper wrote: On 22/11/2023 4:39 pm, Nicola Vetrini wrote:On 2023-11-22 15:27, Andrew Cooper wrote:The differences between inline, __inline and __inline__ keywords are a vestigial remnant of older C standards, and in Xen we use inline almostexclusively. Replace __inline and __inline__ with regular inline, and remove their exceptions from the MISRA configuration. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- CC: Jan Beulich <JBeulich@xxxxxxxx> CC: Roger Pau Monné <roger.pau@xxxxxxxxxx> CC: Wei Liu <wl@xxxxxxx> CC: Stefano Stabellini <sstabellini@xxxxxxxxxx> CC: Roberto Bagnara <roberto.bagnara@xxxxxxxxxxx> CC: Nicola Vetrini <nicola.vetrini@xxxxxxxxxxx> CC: Simone Ballarin <simone.ballarin@xxxxxxxxxxx> I'm entirely guessing at the Eclair configuration. ---The configuration changes are ok. One observation below.Thanks. Can I take that as an Ack/Reviewed-by ? I see that Simone already gave one; that should suffice. diff --git a/xen/include/xen/compiler.h b/xen/include/xen/compiler.h index 04b8bc18df0e..16d554f2a593 100644 --- a/xen/include/xen/compiler.h +++ b/xen/include/xen/compiler.h @@ -83,7 +82,7 @@ * inline functions not expanded inline get placed in .init.text. */ #include <xen/init.h> -#define __inline__ __inline__ __init +#define inline inline __initThe violation of Rule 20.4 (A macro shall not be defined with the same name as a keyword) is still present due to this macro.I was expecting this to come up. There's a comment half out of context above, but to expand on it, we have a feature in the build system where if you say obj-y += foo.init.o then it gets compiled as normal and then all symbols checked for being in the relevant .init sections. It's a safeguard around init-only codeending up in the runtime image (which is good for other goals of safety).This particular define is necessary to cause out-of-lined static inlinesto end up in the right section, without having to invent a new__inline_or_init macro and rewriting half the header files in the project.I think it's going to need a local deviation. It's deliberate, and all we're doing is using the inline keyword to hook in an extra __section() attribute. ~Andrew That's fair. I also agree that an exception for this use of inline can be made. -- Nicola Vetrini, BSc Software Engineer, BUGSENG srl (https://bugseng.com)
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |