[Cogl] [PATCH] configure: Fix the check for _Static_assert

Robert Bragg robert at sixbynine.org
Mon Apr 23 04:17:14 PDT 2012


looks good to me, thanks.

Reviewed-by: Robert Bragg <robert at linux.intel.com>

On Fri, Apr 20, 2012 at 9:24 PM, Neil Roberts <neil at linux.intel.com> wrote:
> 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.
> ---
>  configure.ac |   17 +++++++----------
>  1 files changed, 7 insertions(+), 10 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index 8984351..88ab27d 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -929,16 +929,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.
> --
> 1.7.3.16.g9464b
>
> _______________________________________________
> Cogl mailing list
> Cogl at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/cogl


More information about the Cogl mailing list