[RFC]: (void)0 instead of empty defines

Sam Leffler sam at freebsd.org
Mon Jun 15 18:38:35 UTC 2009


Roman Divacky wrote:
> hi
>
> in many places we do something like
>
> #ifdef SOMETHING
> #define FOO some_code
> #else
> #define FOO
> #endif
>
>
> I propose to change the second FOO to (void)0 in many places to
>
> 1) let this compile cleanly with clang. Clang warns in many places
> about
> 		if (cond)
> 			FOO;
>
> which has empty if body
>
> 2) enforces ; at the end of the expression
>
> this does not cost us nothing so I hope this change is ok.
>
> patch at: http://www.vlakno.cz/~rdivacky/void-zero.patch                                                                                                         
>
> what do you think?
>
> roman
>
> p.s. there's also ACPI_DEBUG_PRINT in contrib/acpica which I hope
> jkim might handle
>   

Are you saying that:

if (cond)
    ;

is considered worthy of a warning by the compiler?  Is it just "if" or 
all conditional control constructs (e.g. while)?

I can image many instances of this construct arising from debugging 
facilities.  This sounds like a stupid restriction and I would argue we 
should just disable the warning.

    Sam



More information about the freebsd-current mailing list