On Mon, Mar 12, 2007 at 05:32:38PM +0000, Richard W.M. Jones wrote:
Daniel P. Berrange wrote:
>On Mon, Mar 12, 2007 at 05:16:52PM +0000, Richard W.M. Jones wrote:
>>* Fix qemudDebug when debug not enabled
>
>Its not clear what was broken about the existing code ?
>
>This chunk:
>
>> #ifdef ENABLE_DEBUG
>> #define qemudDebug(...) qemudLog(QEMUD_DEBUG, __VA_ARGS__)
>> #else
>>-#define qemudDebug(fmt, ...) do { } while(0);
>>+#define qemudDebug(fmt, ...)
>> #endif
>
>Will break / silently change code semantics, if qemudDebug is used in
>situations like
>
>
> if (foo)
> qemudDebug("blah")
> wizz()
I mean this code _looks_ incorrect even if it actually isn't because of
the extra ';' in the macro.
The extra ; in the macro definition is bogus. I did actually mean to
show
if (foo)
qemudDebug("blah");
Which would then turn into
if (foo)
;
Which causes GCC to complain with
cc1: warnings being treated as errors
driver.c: In function âqemudMonitorCommandâ:
driver.c:101: warning: empty body in an if-statement
If you have empty do{}while(0) then gcc won't complain.
So all we need do is drop the extra ';' from the #define for qemudDebug,
but keep the empty loop
Dan.
--
|=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=|
|=- Perl modules:
http://search.cpan.org/~danberr/ -=|
|=- Projects:
http://freshmeat.net/~danielpb/ -=|
|=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=|