Message ID | ead692e7a9f7f21ae54448073af8b64a40f2ddfe.1711118582.git.nicola.vetrini@bugseng.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | address some violations of MISRA C Rule 20.7 | expand |
On 22.03.2024 17:01, Nicola Vetrini wrote: > --- a/xen/common/page_alloc.c > +++ b/xen/common/page_alloc.c > @@ -150,7 +150,7 @@ > #include <asm/paging.h> > #else > #define p2m_pod_offline_or_broken_hit(pg) 0 Seeing this in context: Does Misra also have a rule demanding evaluation of macro arguments? > -#define p2m_pod_offline_or_broken_replace(pg) BUG_ON(pg != NULL) > +#define p2m_pod_offline_or_broken_replace(pg) BUG_ON((pg) != NULL) Or easier #define p2m_pod_offline_or_broken_replace(pg) BUG_ON(pg) ? Jan
Hi Jan, sorry, forgot to reply. On 2024-03-25 10:27, Jan Beulich wrote: > On 22.03.2024 17:01, Nicola Vetrini wrote: >> --- a/xen/common/page_alloc.c >> +++ b/xen/common/page_alloc.c >> @@ -150,7 +150,7 @@ >> #include <asm/paging.h> >> #else >> #define p2m_pod_offline_or_broken_hit(pg) 0 > > Seeing this in context: Does Misra also have a rule demanding > evaluation > of macro arguments? > No such rule. There is one for unused function parameters, though. >> -#define p2m_pod_offline_or_broken_replace(pg) BUG_ON(pg != NULL) >> +#define p2m_pod_offline_or_broken_replace(pg) BUG_ON((pg) != NULL) > > Or easier > > #define p2m_pod_offline_or_broken_replace(pg) BUG_ON(pg) > > ? > Good point. I'll modify it. > Jan
On 26.03.2024 16:27, Nicola Vetrini wrote: > On 2024-03-25 10:27, Jan Beulich wrote: >> On 22.03.2024 17:01, Nicola Vetrini wrote: >>> --- a/xen/common/page_alloc.c >>> +++ b/xen/common/page_alloc.c >>> @@ -150,7 +150,7 @@ >>> #include <asm/paging.h> >>> #else >>> #define p2m_pod_offline_or_broken_hit(pg) 0 >> >> Seeing this in context: Does Misra also have a rule demanding >> evaluation >> of macro arguments? > > No such rule. There is one for unused function parameters, though. Interesting. Are there no concerns regarding side effects not taking place, as one might expect when looking just at the call site? >>> -#define p2m_pod_offline_or_broken_replace(pg) BUG_ON(pg != NULL) >>> +#define p2m_pod_offline_or_broken_replace(pg) BUG_ON((pg) != NULL) >> >> Or easier >> >> #define p2m_pod_offline_or_broken_replace(pg) BUG_ON(pg) >> >> ? >> > > Good point. I'll modify it. I can do that as well while committing. With that adjustment Acked-by: Jan Beulich <jbeulich@suse.com> Jan
On 2024-03-26 16:35, Jan Beulich wrote: > On 26.03.2024 16:27, Nicola Vetrini wrote: >> On 2024-03-25 10:27, Jan Beulich wrote: >>> On 22.03.2024 17:01, Nicola Vetrini wrote: >>>> --- a/xen/common/page_alloc.c >>>> +++ b/xen/common/page_alloc.c >>>> @@ -150,7 +150,7 @@ >>>> #include <asm/paging.h> >>>> #else >>>> #define p2m_pod_offline_or_broken_hit(pg) 0 >>> >>> Seeing this in context: Does Misra also have a rule demanding >>> evaluation >>> of macro arguments? >> >> No such rule. There is one for unused function parameters, though. > > Interesting. Are there no concerns regarding side effects not taking > place, as one might expect when looking just at the call site? > I don't know. Either it was never discussed or it never made it to the final revisions, I guess. >>>> -#define p2m_pod_offline_or_broken_replace(pg) BUG_ON(pg != NULL) >>>> +#define p2m_pod_offline_or_broken_replace(pg) BUG_ON((pg) != NULL) >>> >>> Or easier >>> >>> #define p2m_pod_offline_or_broken_replace(pg) BUG_ON(pg) >>> >>> ? >>> >> >> Good point. I'll modify it. > > I can do that as well while committing. With that adjustment > Acked-by: Jan Beulich <jbeulich@suse.com> > > Jan Thanks
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c index 28c510d6669b..82dc55829f78 100644 --- a/xen/common/page_alloc.c +++ b/xen/common/page_alloc.c @@ -150,7 +150,7 @@ #include <asm/paging.h> #else #define p2m_pod_offline_or_broken_hit(pg) 0 -#define p2m_pod_offline_or_broken_replace(pg) BUG_ON(pg != NULL) +#define p2m_pod_offline_or_broken_replace(pg) BUG_ON((pg) != NULL) #endif #ifndef PGC_static
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> --- xen/common/page_alloc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)