On 01/25/2013 11:40 AM, Richard Henderson wrote: > On 2013-01-25 10:16, Eric Blake wrote: >>> >Which is exactly the case for all three errors reported in this series. >>> >I know of no other good way to arrange this pattern. >> #ifdef SOMETHING >> # define SOMETHING_WITNESS 1 >> #else >> # define SOMETHING_WITNESS 0 >> #endif >> >> if (foo && SOMETHING_WITNESS) { >> bar(); >> } else { >> baz1(); >> baz2(); >> } >> >> That is, hoist your #ifdeffery earlier into the file, and then you can >> avoid #ifdefs inside the function body, and thus avoid the checkpatch >> complaints; plus you get the benefit of testing that the code for >> SOMETHING compiles cleanly even when SOMETHING is not defined. > > Well, in this case bar is not present when SOMETHING is undefined, which > means that it definitely won't compile.
Even that can be fixed: #ifdef SOMETHING # define SOMETHING_WITNESS 1 #else # define SOMETHING_WITNESS 0 # define bar() ((void) 0) #endif > > Fixing that is a significant amount of work inside tcg/tcg-op.h against > which this patch series should not be held up against. True, which is why I will leave it up to the maintainers whether to take your patch in spite of the checkpatch complaints. I was merely pointing out that a cleanup is possible, not that it is mandatory for acceptance. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature