[cogl/wip/rib/cogl-1.12: 52/142] configure: Fix the check for _Static_assert



commit d01842cca334592e44a5b0ba10b57a6e40ac7171
Author: Neil Roberts <neil linux intel com>
Date:   Fri Apr 20 19:50:36 2012 +0100

    configure: Fix the check for _Static_assert
    
    The check for whether the compiler supports _Static_assert didn't work
    properly because the AC_TRY_COMPILE function puts the source
    definition in its own main function. The test therefore ends up
    declaring a nested main function which GCC allows. If _Static_assert
    isn't available then it just looks like an implicit declaration of a
    function which only causes a warning in GCC so it would still compile.
    
    This patch changes it to use AC_COMPILE_IFELSE instead. This macro
    makes it possible to specify the complete source code so
    _Static_assert can be called from the global scope. AC_LANG_PROGRAM is
    used to generate the program. For extra aesthetics it now also
    generates a 'checking for...' message while the script is running.
    
    Reviewed-by: Robert Bragg <robert linux intel com>
    
    (cherry picked from commit 9657938c3083a782234e1e9f05ab5ae88a6bc5ab)

 configure.ac |   17 +++++++----------
 1 files changed, 7 insertions(+), 10 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index c890ac3..8170563 100644
--- a/configure.ac
+++ b/configure.ac
@@ -938,16 +938,13 @@ AC_C_CONST
 dnl     ============================================================
 dnl     Compiler features
 dnl     ============================================================
-AC_TRY_COMPILE([],
-[
-_Static_assert (1, "");
-int
-main (int argc, char **argv)
-{
-  return 0;
-}
-],
-[AC_DEFINE([HAVE_STATIC_ASSERT], [1], [Whether _Static_assert can be used or not])])
+AC_MSG_CHECKING([for _Static_assert])
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([_Static_assert (1, "");],
+                                   [(void) 0])],
+                  [AC_DEFINE([HAVE_STATIC_ASSERT], [1],
+                             [Whether _Static_assert can be used or not])
+                   AC_MSG_RESULT([yes])],
+                  [AC_MSG_RESULT([no])])
 
 dnl ================================================================
 dnl Libtool stuff.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]