From: Paul Eggert Date: Tue, 16 Oct 2007 20:33:21 +0000 (-0700) Subject: Check for 64-bit int errors in HP-UX 10.20 preprocessor. X-Git-Tag: v0.0~74 X-Git-Url: http://erislabs.net/gitweb/?a=commitdiff_plain;h=e3958d5c146d2b396c3de525ac2dfb896a03f061;p=gnulib.git Check for 64-bit int errors in HP-UX 10.20 preprocessor. Problem reported by H.Merijn Brand in . * m4/longlong.m4 (AC_TYPE_LONG_LONG_INT): Check preprocessor too. * m4/ulonglong.m4 (AC_TYPE_UNSIGNED_LONG_LONG_INT): Likewise. --- diff --git a/ChangeLog b/ChangeLog index b43aa0f86..0b5c436c4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2007-10-16 Paul Eggert + + Check for 64-bit int errors in HP-UX 10.20 preprocessor. + Problem reported by H.Merijn Brand in + . + * m4/longlong.m4 (AC_TYPE_LONG_LONG_INT): Check preprocessor too. + * m4/ulonglong.m4 (AC_TYPE_UNSIGNED_LONG_LONG_INT): Likewise. + 2007-10-15 Bruno Haible * lib/fchdir.c (close, open, closedir, opendir, dup, dup2): Define diff --git a/m4/longlong.m4 b/m4/longlong.m4 index 1f9e862ef..5799c3965 100644 --- a/m4/longlong.m4 +++ b/m4/longlong.m4 @@ -1,5 +1,5 @@ -# longlong.m4 serial 10 -dnl Copyright (C) 1999-2006 Free Software Foundation, Inc. +# longlong.m4 serial 11 +dnl Copyright (C) 1999-2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -7,8 +7,8 @@ dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. # Define HAVE_LONG_LONG_INT if 'long long int' works. -# This fixes a bug in Autoconf 2.60, but can be removed once we -# assume 2.61 everywhere. +# This fixes a bug in Autoconf 2.61, but can be removed once we +# assume 2.62 everywhere. # Note: If the type 'long long int' exists but is only 32 bits large # (as on some very old compilers), HAVE_LONG_LONG_INT will not be @@ -19,7 +19,10 @@ AC_DEFUN([AC_TYPE_LONG_LONG_INT], AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int], [AC_LINK_IFELSE( [AC_LANG_PROGRAM( - [[long long int ll = 9223372036854775807ll; + [[#if ! (-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) + error in preprocessor; + #endif + long long int ll = 9223372036854775807ll; long long int nll = -9223372036854775807LL; typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) diff --git a/m4/ulonglong.m4 b/m4/ulonglong.m4 index 9fae98e3a..e9807895a 100644 --- a/m4/ulonglong.m4 +++ b/m4/ulonglong.m4 @@ -1,5 +1,5 @@ -# ulonglong.m4 serial 6 -dnl Copyright (C) 1999-2006 Free Software Foundation, Inc. +# ulonglong.m4 serial 7 +dnl Copyright (C) 1999-2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -7,8 +7,8 @@ dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. # Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works. -# This fixes a bug in Autoconf 2.60, but can be removed once we -# assume 2.61 everywhere. +# This fixes a bug in Autoconf 2.61, but can be removed once we +# assume 2.62 everywhere. # Note: If the type 'unsigned long long int' exists but is only 32 bits # large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT @@ -21,7 +21,10 @@ AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT], [ac_cv_type_unsigned_long_long_int], [AC_LINK_IFELSE( [AC_LANG_PROGRAM( - [[unsigned long long int ull = 18446744073709551615ULL; + [[#if ! (18446744073709551615ULL <= -1u) + error in preprocessor; + #endif + unsigned long long int ull = 18446744073709551615ULL; typedef int a[(18446744073709551615ULL <= (unsigned long long int) -1 ? 1 : -1)]; int i = 63;]],