]> git.ipfire.org Git - thirdparty/autoconf.git/commitdiff
(AC_LANG_BOOL_COMPILE_TRY(C), AC_C_LONG_DOUBLE): Undo 2004-06-04
authorPaul Eggert <eggert@cs.ucla.edu>
Fri, 20 Aug 2004 07:01:02 +0000 (07:01 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Fri, 20 Aug 2004 07:01:02 +0000 (07:01 +0000)
change, as it didn't work with HP-UX 11.23 cc/aCC or Tru64 4.0 cc.
Problem reported by Noah Misch in
<http://lists.gnu.org/archive/html/autoconf/2004-07/msg00004.html>.

lib/autoconf/c.m4

index 621d465ab191bd83995e480ade9f704117988690..06ea36941ab1106862b82daf46550be757e176a7 100644 (file)
@@ -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,