Re: [tip:core/urgent] WARN_ON_SMP(): Add comment to explain ({0;})

H. Peter Anvin
2011-03-28T14:52:21Z

On 03/28/2011 07:45 AM, tip-bot for Steven Rostedt wrote:
>
> WARN_ON_SMP(): Add comment to explain ({0;})
>
> The define to use ({0;}) for the !CONFIG_SMP case of WARN_ON_SMP()
> can be confusing. As the WARN_ON_SMP() needs to be a nop when
> CONFIG_SMP is not set, including all its parameters must not be
> evaluated, and that it must work as both a stand alone statement
> and inside an if condition, we define it to a funky ({0;}).
>
> A simple "0" will not work as it causes gcc to give the warning that
> the statement has no effect.
>
> As this strange definition has raised a few eyebrows from some
> major kernel developers, it is wise to document why we create such
> a work of art.
>

What the heck is wrong with the idiomatic and non-gcc-extension-using:

((void)0)

?

-hpa

--
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel. I don't speak on their behalf.