[libvirt] [PATCH 1/6] Ensure consistent enablement of gcc 'diagnostic' pragma

Daniel P. Berrange berrange at redhat.com
Mon May 13 12:17:22 UTC 2013


From: "Daniel P. Berrange" <berrange at 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 at 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




More information about the libvir-list mailing list