From: "Daniel P. Berrange" <berrange(a)redhat.com>
The virt-compile-warnings.m4 file would do an explicit
check for whether the compile could use the 'diagnostic'
pragma push/pop feature. The src/internal.h file would
then only enable it for GCC >= 4.6
This breaks with clang which supports the pragma but
does not claim GCC 4.6 compat. Export a variable from
the m4 check to the header file so they are consistent.
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
m4/virt-compile-warnings.m4 | 3 +++
src/internal.h | 2 +-
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/m4/virt-compile-warnings.m4 b/m4/virt-compile-warnings.m4
index e054913..fbeb3eb 100644
--- a/m4/virt-compile-warnings.m4
+++ b/m4/virt-compile-warnings.m4
@@ -94,6 +94,9 @@ AC_DEFUN([LIBVIRT_COMPILE_WARNINGS],[
dontwarn="$dontwarn -Wmissing-prototypes"
dontwarn="$dontwarn -Wmissing-declarations"
dontwarn="$dontwarn -Wcast-align"
+ else
+ AC_DEFINE_UNQUOTED([WORKING_PRAGMA_PUSH], 1,
+ [Define to 1 if gcc supports pragma push/pop])
fi
dnl Check whether strchr(s, char variable) causes a bogus compile
diff --git a/src/internal.h b/src/internal.h
index d819aa3..03c2493 100644
--- a/src/internal.h
+++ b/src/internal.h
@@ -215,7 +215,7 @@
# endif /* __GNUC__ */
-# if __GNUC_PREREQ (4, 6)
+# if WORKING_PRAGMA_PUSH
# define VIR_WARNINGS_NO_CAST_ALIGN \
_Pragma ("GCC diagnostic push") \
_Pragma ("GCC diagnostic ignored \"-Wcast-align\"")
--
1.8.2.1