From cb6bafb9af721fcd2295b4da73f4a7812eb4f3e8 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Fri, 24 Apr 2015 13:51:28 +0200 Subject: [PATCH] logging: define _LOGT() macro to check valid arguments With NM_MORE_LOGGING disabled, we still want the compiler to evaluate the argument list. By wrapping it in "if(FALSE)", we get compile time checks, but the logging statement will be optimized out. --- src/nm-route-manager.c | 4 ++-- src/platform/nm-linux-platform.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/nm-route-manager.c b/src/nm-route-manager.c index daccb1639..4bc416d0e 100644 --- a/src/nm-route-manager.c +++ b/src/nm-route-manager.c @@ -112,8 +112,8 @@ static const VTableIP vtable_v4, vtable_v6; #define _LOGT_ENABLED(addr_family) _LOG_LEVEL_ENABLED (LOGL_TRACE, addr_family) #define _LOGT(addr_family, ...) _LOG (LOGL_TRACE, addr_family, __VA_ARGS__) #else -#define _LOGT_ENABLED(addr_family) FALSE -#define _LOGT(addr_family, ...) G_STMT_START { (void) 0; } G_STMT_END +#define _LOGT_ENABLED(addr_family) (FALSE && _LOG_LEVEL_ENABLED (LOGL_TRACE, addr_family)) +#define _LOGT(addr_family, ...) G_STMT_START { if (FALSE) { _LOG (LOGL_TRACE, addr_family, __VA_ARGS__); } } G_STMT_END #endif #define _LOGD(addr_family, ...) _LOG (LOGL_DEBUG, addr_family, __VA_ARGS__) diff --git a/src/platform/nm-linux-platform.c b/src/platform/nm-linux-platform.c index 104319d85..65dd60f56 100644 --- a/src/platform/nm-linux-platform.c +++ b/src/platform/nm-linux-platform.c @@ -99,7 +99,7 @@ #define _LOGT(...) _LOG (LOGL_TRACE, _LOG_DOMAIN, platform, __VA_ARGS__) #else #define _LOGT_ENABLED() FALSE -#define _LOGT(...) G_STMT_START { (void) 0; } G_STMT_END +#define _LOGT(...) G_STMT_START { if (FALSE) { _LOG (LOGL_TRACE, _LOG_DOMAIN, platform, __VA_ARGS__); } } G_STMT_END #endif #define _LOGD(...) _LOG (LOGL_DEBUG, _LOG_DOMAIN, platform, __VA_ARGS__)