blob: 3046ba528b6dd7fd241120d348fc348f56d720f8 [file] [log] [blame]
From dc8aa43b7b6d0cead7d8a0c1a151d289a5233a10 Mon Sep 17 00:00:00 2001
From: Eric Le Bihan <eric.le.bihan.dev@free.fr>
Date: Wed, 2 Apr 2014 12:36:52 +0200
Subject: [PATCH] libudev: Only use #pragma for ignoring diagnostics if GCC
version supports it.
[Peter: update for 2.1.1, fix shared_assert issue]
Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
---
src/shared/macro.h | 8 +++++
1 file changed, 8 insertions(+)
diff --git a/src/shared/macro.h b/src/shared/macro.h
--- a/src/shared/macro.h
+++ b/src/shared/macro.h
@@ -38,6 +38,7 @@
#define _cleanup_(x) __attribute__((cleanup(x)))
/* Temporarily disable some warnings */
+#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)
#define DISABLE_WARNING_DECLARATION_AFTER_STATEMENT \
_Pragma("GCC diagnostic push"); \
_Pragma("GCC diagnostic ignored \"-Wdeclaration-after-statement\"")
@@ -48,6 +49,13 @@
#define REENABLE_WARNING \
_Pragma("GCC diagnostic pop")
+#else
+#define DISABLE_WARNING_DECLARATION_AFTER_STATEMENT
+#define DISABLE_WARNING_FORMAT_NONLITERAL
+#define REENABLE_WARNING
+/* glibc unconditionally defines this, but it needs GCC 4.6+ */
+#undef static_assert
+#endif
#define XCONCATENATE(x, y) x ## y
#define CONCATENATE(x, y) XCONCATENATE(x, y)
--
1.7.9.5