summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2013-03-23 21:55:27 +0100
committerStephan Bergmann <sbergman@redhat.com>2013-03-25 08:52:54 +0100
commitfa545023ada3f2a5f79cab1ff628fd18434c7c2e (patch)
tree7bb5c0f01264f9b53724baa1b0ef7b7e80e23b3d /configure.ac
parentc940e3d8b3895c550fb37e0e9acbd19b4bb3515e (diff)
Introduce HAVE_GCC_PRAGMA_DIAGNOSTIC_{MODIFY,SCOPE}
...replacing hard-coded GCC version checks. Those checks that guard #pragma GCC diagnostic ignored "-Wnon-virtual-dtor" appear relevant only for GCC itself, not Clang (which used to fail the old guards because it typically announces itself with a rather low __GNUC__/__GNUC_MINOR__ version), see 6e67c03dc0225fc66343546b14e902b9d238b1a3 "Enable -Wnon-virtual-dtor for GCC 4.6" Change-Id: I6bfa4d5caa6192e7a203ce829682bf6bb8d61a1b
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac27
1 files changed, 27 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index 898dedb0523b..a12018a4ae8a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5562,6 +5562,33 @@ if test "$GCC" = "yes"; then
AC_MSG_RESULT([no])
fi
+ AC_MSG_CHECKING(
+ [whether $CC supports pragma GCC diagnostic error/ignored/warning])
+ save_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS -Werror -Wunused"
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([
+ #pragma GCC diagnostic ignored "-Wunused"
+ static void dummy() {}
+ ])], [
+ AC_DEFINE([HAVE_GCC_PRAGMA_DIAGNOSTIC_MODIFY],[1])
+ AC_MSG_RESULT([yes])
+ ], [AC_MSG_RESULT([no])])
+ CFLAGS=$save_CFLAGS
+
+ AC_MSG_CHECKING([whether $CC supports pragma GCC diagnostic push/pop])
+ save_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS -Werror -Wunused"
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wunused"
+ static void dummy() {}
+ #pragma GCC diagnostic pop
+ ])], [
+ AC_DEFINE([HAVE_GCC_PRAGMA_DIAGNOSTIC_SCOPE],[1])
+ AC_MSG_RESULT([yes])
+ ], [AC_MSG_RESULT([no])])
+ CFLAGS=$save_CFLAGS
+
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#if __GNUC__ == 4 && __GNUC_MINOR__ == 7 && (__GNUC_PATCHLEVEL__ == 0 || __GNUC_PATCHLEVEL__ == 1)
#else