From: Paul Eggert Date: Fri, 20 Aug 2004 07:01:02 +0000 (+0000) Subject: (AC_LANG_BOOL_COMPILE_TRY(C), AC_C_LONG_DOUBLE): Undo 2004-06-04 X-Git-Tag: AUTOCONF-2.59c~650 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a8e665bc9514f2279ece57f49748e7cd86004ac0;p=thirdparty%2Fautoconf.git (AC_LANG_BOOL_COMPILE_TRY(C), AC_C_LONG_DOUBLE): Undo 2004-06-04 change, as it didn't work with HP-UX 11.23 cc/aCC or Tru64 4.0 cc. Problem reported by Noah Misch in . --- diff --git a/lib/autoconf/c.m4 b/lib/autoconf/c.m4 index 621d465ab..06ea36941 100644 --- a/lib/autoconf/c.m4 +++ b/lib/autoconf/c.m4 @@ -228,14 +228,13 @@ char (*f) () = $1; # AC_LANG_BOOL_COMPILE_TRY(C)(PROLOGUE, EXPRESSION) # ------------------------------------------------- -# The C standard does not require a diagnostic when we compute 1 / 0 -# at compile-time, but we don't know of any compiler that fails to -# diagnose this. Diagnostics are required for some other expressions -# (e.g., ((EXPRESSION) ? 0 : (0, 0)), INT_MAX + !!(EXPRESSION)), -# but they don't work as well in practice. +# Return a program that is valid if EXPRESSION is nonzero. +# EXPRESSION must be an integer constant expression. +# Be sure to use this array to avoid `unused' warnings, which are even +# errors with `-W error'. m4_define([AC_LANG_BOOL_COMPILE_TRY(C)], -[AC_LANG_PROGRAM([$1], [static int v = 1 / !!($2); -v = 0; +[AC_LANG_PROGRAM([$1], [static int test_array @<:@1 - 2 * !($2)@:>@; +test_array @<:@0@:>@ = 0 ])]) @@ -968,8 +967,6 @@ AC_DEFUN([AC_C_LONG_DOUBLE], + (DBL_MANT_DIG < LDBL_MANT_DIG) - (LDBL_MAX_EXP < DBL_MAX_EXP) - (LDBL_MANT_DIG < DBL_MANT_DIG))) - && (0 < ((DBL_MAX < LDBL_MAX) + (LDBL_EPSILON < DBL_EPSILON) - - (LDBL_MAX < DBL_MAX) - (DBL_EPSILON < LDBL_EPSILON))) && (int) LDBL_EPSILON == 0 ]])], ac_cv_c_long_double=yes,