configure: check if compiler halts on function prototype mismatch

pull/10/head
Yang Tse 12 years ago
parent 9da14a847f
commit 84eb2dc220
  1. 1
      configure.ac
  2. 38
      m4/cares-compilers.m4

@ -177,6 +177,7 @@ fi
CARES_CHECK_COMPILER_HALT_ON_ERROR
CARES_CHECK_COMPILER_ARRAY_SIZE_NEGATIVE
CARES_CHECK_COMPILER_PROTOTYPE_MISMATCH
CARES_CHECK_COMPILER_SYMBOL_HIDING
CARES_CHECK_NO_UNDEFINED

@ -15,7 +15,7 @@
#***************************************************************************
# File version for 'aclocal' use. Keep it a single number.
# serial 72
# serial 73
dnl CARES_CHECK_COMPILER
@ -1527,6 +1527,42 @@ AC_DEFUN([CARES_CHECK_COMPILER_SYMBOL_HIDING], [
])
dnl CARES_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([CARES_CHECK_COMPILER_PROTOTYPE_MISMATCH], [
AC_REQUIRE([CARES_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 CARES_VAR_MATCH (VARNAME, VALUE)
dnl -------------------------------------------------
dnl Verifies if shell variable VARNAME contains VALUE.

Loading…
Cancel
Save