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)
This commit is contained in:
parent
8dd77de009
commit
a9d1939425
17
configure.ac
17
configure.ac
@ -938,16 +938,13 @@ AC_C_CONST
|
|||||||
dnl ============================================================
|
dnl ============================================================
|
||||||
dnl Compiler features
|
dnl Compiler features
|
||||||
dnl ============================================================
|
dnl ============================================================
|
||||||
AC_TRY_COMPILE([],
|
AC_MSG_CHECKING([for _Static_assert])
|
||||||
[
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([_Static_assert (1, "");],
|
||||||
_Static_assert (1, "");
|
[(void) 0])],
|
||||||
int
|
[AC_DEFINE([HAVE_STATIC_ASSERT], [1],
|
||||||
main (int argc, char **argv)
|
[Whether _Static_assert can be used or not])
|
||||||
{
|
AC_MSG_RESULT([yes])],
|
||||||
return 0;
|
[AC_MSG_RESULT([no])])
|
||||||
}
|
|
||||||
],
|
|
||||||
[AC_DEFINE([HAVE_STATIC_ASSERT], [1], [Whether _Static_assert can be used or not])])
|
|
||||||
|
|
||||||
dnl ================================================================
|
dnl ================================================================
|
||||||
dnl Libtool stuff.
|
dnl Libtool stuff.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user