Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 15 Jun 2009 11:38:33 -0700
From:      Sam Leffler <sam@freebsd.org>
To:        Roman Divacky <rdivacky@freebsd.org>
Cc:        current@freebsd.org
Subject:   Re: [RFC]: (void)0 instead of empty defines
Message-ID:  <4A369529.5090004@freebsd.org>
In-Reply-To: <20090615181555.GA52009@freebsd.org>
References:  <20090615181555.GA52009@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4A369529.5090004>