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" <[email protected]>
> Message-ID: <[email protected]>
>
> | 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: [email protected]