diff options
Diffstat (limited to 'ares/m4/cares-compilers.m4')
-rw-r--r-- | ares/m4/cares-compilers.m4 | 55 |
1 files changed, 51 insertions, 4 deletions
diff --git a/ares/m4/cares-compilers.m4 b/ares/m4/cares-compilers.m4 index 897c2ad89..80f4d1b49 100644 --- a/ares/m4/cares-compilers.m4 +++ b/ares/m4/cares-compilers.m4 @@ -1,7 +1,7 @@ #*************************************************************************** # $Id$ # -# Copyright (C) 2008 by Daniel Stenberg et al +# Copyright (C) 2009 by Daniel Stenberg et al # # Permission to use, copy, modify, and distribute this software and its # documentation for any purpose and without fee is hereby granted, provided @@ -16,7 +16,7 @@ #*************************************************************************** # File version for 'aclocal' use. Keep it a single number. -# serial 48 +# serial 49 dnl CARES_CHECK_COMPILER @@ -374,8 +374,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([CARES_CONVERT_INCLUDE_TO_ISYSTEM], [ AC_REQUIRE([CARES_SHFUNC_SQUEEZE])dnl @@ -1121,6 +1121,53 @@ AC_DEFUN([CARES_CHECK_PROG_CC], [ ]) +dnl CARES_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([CARES_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 CARES_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([CARES_CHECK_COMPILER_ARRAY_SIZE_NEGATIVE], [ + AC_REQUIRE([CARES_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 CARES_VAR_MATCH (VARNAME, VALUE) dnl ------------------------------------------------- dnl Verifies if shell variable VARNAME contains VALUE. |