On 07/11/2012 04:40 AM, Hu Tao wrote:
When building with --disable-debug, VIR_DEBUG expands to a nop.
But parameters to VIR_DEBUG can be variables that are passed only
to VIR_DEBUG. In the case the building system complains about unused
variables.
---
cfg.mk | 2 ++
src/util/logging.h | 8 +++++++-
2 files changed, 9 insertions(+), 1 deletion(-)
# else
+/**
+ * virLogEatParam:
+ *
+ * Do nothing but eat parameters.
+ */
+static inline void virLogEatParam(void *unused ATTRIBUTE_UNUSED, ...) {}
Can't we do:
static inline void virLogEatParam(void *dummy, ...) { dummy = dummy; }
to avoid even needing the ATTRIBUTE_UNUSED, and the syntax check exemption?
# define VIR_DEBUG_INT(category, f, l, ...) \
- do { } while (0)
+ virLogEatParam((void*)category, f, l, __VA_ARGS__)
Any reason we have to use a cast, instead of just creating our eat
function with the correct type parameter in the first place?
--
Eric Blake eblake(a)redhat.com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org