[Libvir] [PATCH] Check calls to printf-like functions (and some fixes)

Richard W.M. Jones rjones at redhat.com
Mon Mar 12 17:32:38 UTC 2007


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.

If I type this into emacs and hit [tab] a few times I get:

     if (foo)
         qemudDebug("blah")
             wizz()

so people are at least getting what they'd expect ...

Anyway, I've just manually checked all calls to qemudDebug to see if any 
omit the trailing ';', and none do.

Rich.




More information about the libvir-list mailing list