From 57fa576a35e45a729939d5ef6bced81f3facbf63 Mon Sep 17 00:00:00 2001 From: Yang Tse Date: Sun, 16 Dec 2012 18:51:51 +0100 Subject: configure: check if compiler halts on function prototype mismatch --- m4/curl-compilers.m4 | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) (limited to 'm4/curl-compilers.m4') diff --git a/m4/curl-compilers.m4 b/m4/curl-compilers.m4 index 819bbd9c8..0879a48e0 100644 --- a/m4/curl-compilers.m4 +++ b/m4/curl-compilers.m4 @@ -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 + 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. -- cgit v1.2.3