From fa545023ada3f2a5f79cab1ff628fd18434c7c2e Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Sat, 23 Mar 2013 21:55:27 +0100 Subject: 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 --- configure.ac | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'configure.ac') 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 -- cgit