From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: michal.orzel@amd.com, xenia.ragiadakou@amd.com,
ayan.kumar.halder@amd.com, consulting@bugseng.com,
andrew.cooper3@citrix.com, roger.pau@citrix.com,
bertrand.marquis@arm.com, julien@xen.org,
George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
xen-devel@lists.xenproject.org,
Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH 04/10] xen/public: address violations of MISRA C Rule 20.7
Date: Tue, 05 Mar 2024 17:17:00 +0100 [thread overview]
Message-ID: <388f684d9f161815c13d57ea76c656ac@bugseng.com> (raw)
In-Reply-To: <ce926fd9-15b7-4c81-9581-b6e904963a24@suse.com>
On 2024-03-05 11:26, Jan Beulich wrote:
> On 05.03.2024 11:21, Nicola Vetrini wrote:
>> On 2024-02-29 23:49, Stefano Stabellini wrote:
>>> On Thu, 29 Feb 2024, Nicola Vetrini wrote:
>>>> On 2024-02-29 17:40, Jan Beulich wrote:
>>>>> On 29.02.2024 16:27, Nicola Vetrini wrote:
>>>>>> --- a/xen/include/public/xen.h
>>>>>> +++ b/xen/include/public/xen.h
>>>>>> @@ -988,7 +988,7 @@ typedef struct {
>>>>>> ((b) >> 8) & 0xFF, ((b) >> 0) & 0xFF,
>>>>>> \
>>>>>> ((c) >> 8) & 0xFF, ((c) >> 0) & 0xFF,
>>>>>> \
>>>>>> ((d) >> 8) & 0xFF, ((d) >> 0) & 0xFF,
>>>>>> \
>>>>>> - e1, e2, e3, e4, e5, e6}}
>>>>>> + (e1), (e2), (e3), (e4), (e5), (e6)}}
>>>>>
>>>>> Why? Wasn't it agreed already that long macro arguments passed on
>>>>> (no matter whether to a function, a macro, or like used here) don't
>>>>> need parenthesizing?
>>>>>
>>>>
>>>> That applies to all outermost macro invocations, but not to the
>>>> innermost one.
>>>
>>> I don't understand what you mean. Maybe a couple of trivial examples
>>> would help.
>>>
>>>
>>>> If you want also aggregate initalizers to be deviated, that could be
>>>> done
>>>> (provided that the macro arg is not included in some expression,
>>>> such
>>>> as
>>>> "{..., e1 + 1, ...}"
>>>
>>
>> Sorry for the late reply. This is the current state:
>>
>> #define N(x) somestruct var = {..., x, ...}; // <- not deviated,
>> violation here
>> #define M(x) N(x) // <- deviated, no violation here
>>
>> ...
>>
>> M(0xff);
>>
>> The violation is resolved by {..., (x), ...} or by saying that when
>> "x"
>> is a whole expression in its fully expanded form, then we allow it not
>> to be needlessly parenthesized, as Jan requested (unless I
>> misunderstood
>> his reply).
>
> Well, the thing I continue to have trouble with is "fully expanded
> form".
> That's not the criteria I'd like to see applied. To me all depends on
> how
> the macro is written, not what uses of the macro expand to.
>
Sure.
>> In that case, the only this that would still give a
>> violation in the above setting is questionable patterns such as
>>
>> #define Q(x) x, x
>
> Right.
>
> #define Q(x) (x, x)
>
> ought to be okay though, rule-wise, no matter that it's questionable
> too.
>
> Jan
--
Nicola Vetrini, BSc
Software Engineer, BUGSENG srl (https://bugseng.com)
next prev parent reply other threads:[~2024-03-05 16:17 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-29 15:27 [XEN PATCH 00/10] address some violations of MISRA C Rule 20.7 Nicola Vetrini
2024-02-29 15:27 ` [XEN PATCH 01/10] xen/include: address " Nicola Vetrini
2024-02-29 16:10 ` Andrew Cooper
2024-02-29 16:21 ` Nicola Vetrini
2024-02-29 16:47 ` Andrew Cooper
2024-02-29 16:53 ` Nicola Vetrini
2024-02-29 16:25 ` Jan Beulich
2024-02-29 16:40 ` Nicola Vetrini
2024-02-29 16:47 ` Jan Beulich
2024-02-29 15:27 ` [XEN PATCH 02/10] xen/arm: address some " Nicola Vetrini
2024-02-29 16:34 ` Jan Beulich
2024-03-01 15:30 ` Nicola Vetrini
2024-03-04 18:17 ` Nicola Vetrini
2024-03-05 1:43 ` Stefano Stabellini
2024-03-05 10:25 ` Nicola Vetrini
2024-02-29 15:27 ` [XEN PATCH 03/10] x86: " Nicola Vetrini
2024-02-29 16:37 ` Jan Beulich
2024-02-29 16:45 ` Nicola Vetrini
2024-02-29 17:05 ` Jan Beulich
2024-03-05 10:26 ` Nicola Vetrini
2024-02-29 15:27 ` [XEN PATCH 04/10] xen/public: address " Nicola Vetrini
2024-02-29 16:40 ` Jan Beulich
2024-02-29 16:49 ` Nicola Vetrini
2024-02-29 22:49 ` Stefano Stabellini
2024-03-05 10:21 ` Nicola Vetrini
2024-03-05 10:26 ` Jan Beulich
2024-03-05 16:17 ` Nicola Vetrini [this message]
2024-03-01 7:54 ` Jan Beulich
2024-02-29 15:27 ` [XEN PATCH 05/10] xen/perfc: " Nicola Vetrini
2024-02-29 16:42 ` Jan Beulich
2024-02-29 16:50 ` Nicola Vetrini
2024-02-29 15:27 ` [XEN PATCH 06/10] arm/smmu: address some " Nicola Vetrini
2024-02-29 22:53 ` Stefano Stabellini
2024-03-05 10:23 ` Nicola Vetrini
2024-03-07 1:31 ` Stefano Stabellini
2024-02-29 15:27 ` [XEN PATCH 07/10] xen/arm: smmuv3: address " Nicola Vetrini
2024-02-29 22:54 ` Stefano Stabellini
2024-02-29 15:28 ` [XEN PATCH 08/10] xen/errno: " Nicola Vetrini
2024-02-29 22:55 ` Stefano Stabellini
2024-03-01 8:10 ` Nicola Vetrini
2024-03-04 9:39 ` Jan Beulich
2024-02-29 15:28 ` [XEN PATCH 09/10] xen/include: tasklet: " Nicola Vetrini
2024-02-29 22:56 ` Stefano Stabellini
2024-02-29 15:28 ` [XEN PATCH 10/10] xen/keyhandler: " Nicola Vetrini
2024-02-29 22:57 ` Stefano Stabellini
2024-03-01 8:00 ` Jan Beulich
2024-03-02 1:37 ` Stefano Stabellini
2024-03-04 8:00 ` Jan Beulich
2024-03-05 2:03 ` Stefano Stabellini
2024-03-05 7:00 ` Jan Beulich
2024-03-07 1:39 ` Stefano Stabellini
2024-03-07 7:42 ` Jan Beulich
2024-03-07 13:52 ` Nicola Vetrini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=388f684d9f161815c13d57ea76c656ac@bugseng.com \
--to=nicola.vetrini@bugseng.com \
--cc=andrew.cooper3@citrix.com \
--cc=ayan.kumar.halder@amd.com \
--cc=bertrand.marquis@arm.com \
--cc=consulting@bugseng.com \
--cc=george.dunlap@citrix.com \
--cc=jbeulich@suse.com \
--cc=julien@xen.org \
--cc=michal.orzel@amd.com \
--cc=roger.pau@citrix.com \
--cc=sstabellini@kernel.org \
--cc=wl@xen.org \
--cc=xen-devel@lists.xenproject.org \
--cc=xenia.ragiadakou@amd.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.