summaryrefslogtreecommitdiff
path: root/src/libudev
diff options
context:
space:
mode:
authorAnthony G. Basile <blueness@gentoo.org>2014-02-21 10:20:14 -0500
committerAnthony G. Basile <blueness@gentoo.org>2014-02-21 10:20:31 -0500
commit306c786fdcca7e75268ed9903367b0fd32db5502 (patch)
tree33cf9c5e2c8d28edeed8436f2737f77fa67e7eec /src/libudev
parent4e8d48be86ced6c8f8a85cccd63f494d5bcc0fb2 (diff)
macro: introduce a nice macro for disabling -Wformat-nonliteral temporarily
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
Diffstat (limited to 'src/libudev')
-rw-r--r--src/libudev/log.c5
-rw-r--r--src/libudev/macro.h5
2 files changed, 7 insertions, 3 deletions
diff --git a/src/libudev/log.c b/src/libudev/log.c
index 75157083c6..73bba69853 100644
--- a/src/libudev/log.c
+++ b/src/libudev/log.c
@@ -531,22 +531,21 @@ int log_meta(
return r;
}
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wformat-nonliteral"
static void log_assert(int level, const char *text, const char *file, int line, const char *func, const char *format) {
static char buffer[LINE_MAX];
if (_likely_(LOG_PRI(level) > log_max_level))
return;
+ DISABLE_WARNING_FORMAT_NONLITERAL;
snprintf(buffer, sizeof(buffer), format, text, file, line, func);
+ REENABLE_WARNING;
char_array_0(buffer);
log_abort_msg = buffer;
log_dispatch(level, file, line, func, NULL, NULL, buffer);
}
-#pragma GCC diagnostic pop
noreturn void log_assert_failed(const char *text, const char *file, int line, const char *func) {
log_assert(LOG_CRIT, text, file, line, func, "Assertion '%s' failed at %s:%u, function %s(). Aborting.");
diff --git a/src/libudev/macro.h b/src/libudev/macro.h
index 835610caf3..088fcd2640 100644
--- a/src/libudev/macro.h
+++ b/src/libudev/macro.h
@@ -39,6 +39,11 @@
#define _public_ __attribute__ ((visibility("default")))
#define _cleanup_(x) __attribute__((cleanup(x)))
+
+#define DISABLE_WARNING_FORMAT_NONLITERAL \
+ _Pragma("GCC diagnostic push"); \
+ _Pragma("GCC diagnostic ignored \"-Wformat-nonliteral\"")
+
/* Rounds up */
#define ALIGN4(l) (((l) + 3) & ~3)