configure: check if compiler halts on function prototype mismatch

This commit is contained in:
Yang Tse 2012-12-16 18:51:51 +01:00
parent f6af9d9886
commit 57fa576a35
2 changed files with 38 additions and 1 deletions

View File

@ -340,6 +340,7 @@ fi
CURL_CHECK_COMPILER_HALT_ON_ERROR
CURL_CHECK_COMPILER_ARRAY_SIZE_NEGATIVE
CURL_CHECK_COMPILER_PROTOTYPE_MISMATCH
CURL_CHECK_COMPILER_SYMBOL_HIDING
CURL_CHECK_NO_UNDEFINED

View File

@ -21,7 +21,7 @@
#***************************************************************************
# File version for 'aclocal' use. Keep it a single number.
# serial 63
# serial 64
dnl CURL_CHECK_COMPILER
@ -1495,6 +1495,42 @@ AC_DEFUN([CURL_CHECK_COMPILER_SYMBOL_HIDING], [
])
dnl CURL_CHECK_COMPILER_PROTOTYPE_MISMATCH
dnl -------------------------------------------------
dnl Verifies if the compiler actually halts after the
dnl compilation phase without generating any object
dnl code file, when the source code tries to redefine
dnl a prototype which does not match previous one.
AC_DEFUN([CURL_CHECK_COMPILER_PROTOTYPE_MISMATCH], [
AC_REQUIRE([CURL_CHECK_COMPILER_HALT_ON_ERROR])dnl
AC_MSG_CHECKING([if compiler halts on function prototype mismatch])
AC_COMPILE_IFELSE([
AC_LANG_PROGRAM([[
# include <stdlib.h>
int rand(int n);
int rand(int n)
{
if(n)
return ++n;
else
return n;
}
]],[[
int i[2];
int j = rand(i[0]);
if(j)
return j;
]])
],[
AC_MSG_RESULT([no])
AC_MSG_ERROR([compiler does not halt on function prototype mismatch.])
],[
AC_MSG_RESULT([yes])
])
])
dnl CURL_VAR_MATCH (VARNAME, VALUE)
dnl -------------------------------------------------
dnl Verifies if shell variable VARNAME contains VALUE.