From: Jan Beulich <jbeulich@suse.com>
To: Federico Serafini <federico.serafini@bugseng.com>
Cc: consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>,
George Dunlap <george.dunlap@citrix.com>,
Julien Grall <julien@xen.org>,
Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH 1/3] xen: introduce static_assert_unreachable()
Date: Wed, 24 Jan 2024 09:33:51 +0100 [thread overview]
Message-ID: <652d50ad-33a4-42cd-bf88-e06cc53ffd7f@suse.com> (raw)
In-Reply-To: <11660006-7651-4562-9e14-0d7b22788feb@bugseng.com>
On 24.01.2024 09:20, Federico Serafini wrote:
> On 22/01/24 15:02, Jan Beulich wrote:
>> On 22.01.2024 14:48, Federico Serafini wrote:
>>> --- a/xen/include/xen/compiler.h
>>> +++ b/xen/include/xen/compiler.h
>>> @@ -64,6 +64,14 @@
>>> # define fallthrough do {} while (0) /* fallthrough */
>>> #endif
>>>
>>> +/*
>>> + * Add the following macro to check that a program point is considered
>>> + * unreachable by the static analysis performed by the compiler,
>>> + * even at optimization level -O0.
>>> + */
>>> +#define static_assert_unreachable() \
>>> + asm(".error \"unreachable program point reached\"");
>>
>> Did you check the diagnostic that results when this check actually
>> triggers? I expect it will be not really obvious from the message
>> you introduce where the issue actually is. I expect we will want
>> to use some of __FILE__ / __LINE__ / __FUNCTION__ to actually
>> supply such context.
>
> The assembler error comes with file and line information, for example:
>
> ./arch/x86/include/asm/uaccess.h: Assembler messages:
> ./arch/x86/include/asm/uaccess.h:377: Error: unreachable program point
> reached
>
> At line 377 there is an use of get_unsafe_size() where I passed a wrong
> size as argument. Is that clear enough?
Hmm, yes, looks like it might be sufficient. Mentioning __FUNCTION__ may
still add value, though. But I see now that __FILE__ / __LINE__ are
already covered for.
> What do you think about modifying the message as follows:
> "unreachability static assert failed."
I'm okay-ish with the original text, and I like it slightly better than
this new suggestion. If we want "static assert" in the output, then maybe
"static assertion failed: unreachable".
>> Also: Stray semicolon and (nit) missing blanks.
>
> It is not clear to me where are the missing blanks.
Just like for other keywords:
asm ( ".error \"unreachable program point reached\"" )
Jan
next prev parent reply other threads:[~2024-01-24 8:34 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-22 13:48 [XEN PATCH 0/3] Introduce and use static_assert_unreachable() Federico Serafini
2024-01-22 13:48 ` [XEN PATCH 1/3] xen: introduce static_assert_unreachable() Federico Serafini
2024-01-22 14:02 ` Jan Beulich
2024-01-24 8:20 ` Federico Serafini
2024-01-24 8:33 ` Jan Beulich [this message]
2024-01-22 13:48 ` [XEN PATCH 2/3] x86/uaccess: replace __{get,put}_user_bad() with static_assert_unreachable() Federico Serafini
2024-01-22 13:48 ` [XEN PATCH 3/3] automation/eclair: add deviation for MISRA C:2012 Rule 16.3 Federico Serafini
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=652d50ad-33a4-42cd-bf88-e06cc53ffd7f@suse.com \
--to=jbeulich@suse.com \
--cc=andrew.cooper3@citrix.com \
--cc=consulting@bugseng.com \
--cc=federico.serafini@bugseng.com \
--cc=george.dunlap@citrix.com \
--cc=julien@xen.org \
--cc=sstabellini@kernel.org \
--cc=wl@xen.org \
--cc=xen-devel@lists.xenproject.org \
/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.