Use do { ... } while (0) for the *_LOG macros Without this patch, such code would not compile: if (cond) WARN_LOG(FOO, "msg"); else WARN_LOG(FOO, "msg2");