On Tue, Oct 07, 2014 at 12:40:04AM +0700, Robert Elz wrote:
>     Date:        Mon, 6 Oct 2014 14:26:44 +0000
>     From:        "Havard Eidnes" <h...@netbsd.org>
>     Message-ID:  <20141006142644.7693...@cvs.netbsd.org>
> 
>   | Make this build again without debugging enabled; DPRINTF() can end up
>   | as empty, and in an if conditional, you then need braces if that's the
>   | only potential body.
> 
> That change makes no sense to me - the original code was
> 
>       if (error)
>               DPRINTF((....));
> 
> and even if DPRINTF() could produce nothing, the result would be
> 
>       if (error)
>               ;
> 
> which is perfectly good C (useless, but acceptable).  Adding { } around
> the ';' changes nothing.

Consider what happens if you write:
        if (error)
                DPRINTF((...));
        else
                fubar();

When DPRINTF() expands 'if (xxx) yyy' it all goes horribly wrong.

Do we need to support any compilers that don't support __VA_ARGS__ ?
Even microsoft's compiler almost supports it.

        David

-- 
David Laight: da...@l8s.co.uk

Reply via email to