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 -=|