summaryrefslogtreecommitdiff
path: root/m4/curl-compilers.m4
diff options
context:
space:
mode:
authorYang Tse <yangsita@gmail.com>2009-05-07 11:06:48 +0000
committerYang Tse <yangsita@gmail.com>2009-05-07 11:06:48 +0000
commitcfda3e6a48fdeb2a3ffd9358a38666c2a1a6038b (patch)
treea73f3dd89d19dcac5d3a50c7172e835f0c4f852f /m4/curl-compilers.m4
parent4d522b8f31d3ca63f860eec2a030e464457671ac (diff)
downloadcurl-cfda3e6a48fdeb2a3ffd9358a38666c2a1a6038b.tar.gz
Moved *_CHECK_COMPILER_HALT_ON_ERROR and *_CHECK_COMPILER_ARRAY_SIZE_NEGATIVE to *-compilers.m4 along with other *_CHECK_COMPILER_*
Diffstat (limited to 'm4/curl-compilers.m4')
-rw-r--r--m4/curl-compilers.m453
1 files changed, 50 insertions, 3 deletions
diff --git a/m4/curl-compilers.m4 b/m4/curl-compilers.m4
index 898d38fa3..adff294ad 100644
--- a/m4/curl-compilers.m4
+++ b/m4/curl-compilers.m4
@@ -22,7 +22,7 @@
#***************************************************************************
# File version for 'aclocal' use. Keep it a single number.
-# serial 48
+# serial 49
dnl CURL_CHECK_COMPILER
@@ -380,8 +380,8 @@ dnl -------------------------------------------------
dnl Changes standard include paths present in CFLAGS
dnl and CPPFLAGS into isystem include paths. This is
dnl done to prevent GNUC from generating warnings on
-dnl headers from these locations, even though this is
-dnl not reliable on ancient GNUC versions.
+dnl headers from these locations, although on ancient
+dnl GNUC versions these warnings are not silenced.
AC_DEFUN([CURL_CONVERT_INCLUDE_TO_ISYSTEM], [
AC_REQUIRE([CURL_SHFUNC_SQUEEZE])dnl
@@ -1113,6 +1113,53 @@ AC_DEFUN([CURL_CHECK_PROG_CC], [
])
+dnl CURL_CHECK_COMPILER_HALT_ON_ERROR
+dnl -------------------------------------------------
+dnl Verifies if the compiler actually halts after the
+dnl compilation phase without generating any object
+dnl code file, when the source compiles with errors.
+
+AC_DEFUN([CURL_CHECK_COMPILER_HALT_ON_ERROR], [
+ AC_MSG_CHECKING([if compiler halts on compilation errors])
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+ ]],[[
+ force compilation error
+ ]])
+ ],[
+ AC_MSG_RESULT([no])
+ AC_MSG_ERROR([compiler does not halt on compilation errors.])
+ ],[
+ AC_MSG_RESULT([yes])
+ ])
+])
+
+
+dnl CURL_CHECK_COMPILER_ARRAY_SIZE_NEGATIVE
+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 define a
+dnl type for a constant array with negative dimension.
+
+AC_DEFUN([CURL_CHECK_COMPILER_ARRAY_SIZE_NEGATIVE], [
+ AC_REQUIRE([CURL_CHECK_COMPILER_HALT_ON_ERROR])dnl
+ AC_MSG_CHECKING([if compiler halts on negative sized arrays])
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+ typedef char bad_t[sizeof(char) == sizeof(int) ? -1 : -1 ];
+ ]],[[
+ bad_t dummy;
+ ]])
+ ],[
+ AC_MSG_RESULT([no])
+ AC_MSG_ERROR([compiler does not halt on negative sized arrays.])
+ ],[
+ AC_MSG_RESULT([yes])
+ ])
+])
+
+
dnl CURL_VAR_MATCH (VARNAME, VALUE)
dnl -------------------------------------------------
dnl Verifies if shell variable VARNAME contains VALUE.