mirror of
https://github.com/videolan/vlc.git
synced 2024-11-23 18:03:48 +08:00
configure: check typeof on C++ compilers
C compilers can have GNU extensions to support typeof in C code, but some C++ compilers like clang are removing the builtin since decltype can be used in C++ without the constraints from typeof. Decltype is not 100% equivalent for this reason: references will be kept in the returned type. The check in m4/typeof.m4 comes from graydon/monotone and dovecot/core and was slightly modified to namespace the define for C++ code.
This commit is contained in:
parent
0caa9ea0e6
commit
784c324571
@ -68,7 +68,10 @@ dnl Check for compiler properties
|
||||
AC_C_CONST
|
||||
AC_C_INLINE
|
||||
AC_C_RESTRICT
|
||||
AC_LANG_PUSH([C++])
|
||||
AX_CXX_COMPILE_STDCXX_14([noext], [mandatory])
|
||||
AX_CXX_TYPEOF
|
||||
AC_LANG_POP([C++])
|
||||
|
||||
dnl Extend the --help string at the current spot.
|
||||
AC_DEFUN([EXTEND_HELP_STRING], [m4_divert_once([HELP_ENABLE], [$1])])
|
||||
|
20
m4/typeof.m4
Normal file
20
m4/typeof.m4
Normal file
@ -0,0 +1,20 @@
|
||||
dnl @synopsis AX_CXX_TYPEOF
|
||||
dnl
|
||||
dnl tests for the presence of the gcc hashmap stl extension
|
||||
dnl
|
||||
dnl @author Patrick Mauritz <oxygene@studentenbude.ath.cx>
|
||||
dnl @version 2005-08-15
|
||||
dnl @license AllPermissive
|
||||
|
||||
AC_DEFUN([AX_CXX_TYPEOF],[
|
||||
AC_LANG_ASSERT([C++])
|
||||
AC_CACHE_CHECK(whether the C++ compiler supports typeof,
|
||||
ac_cv_cxx_typeof,
|
||||
[AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ int x; typeof (x) y[6]; ]])],
|
||||
[ac_cv_cxx_typeof=yes],
|
||||
[ac_cv_cxx_typeof=no])
|
||||
])
|
||||
if test "$ac_cv_cxx_typeof" = yes; then
|
||||
AC_DEFINE(HAVE_CXX_TYPEOF, 1, [Define if the compiler supports typeof.])
|
||||
fi
|
||||
])
|
Loading…
Reference in New Issue
Block a user