bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-tar] GNU tar 1.19 on HP-UX


From: Paul Eggert
Subject: Re: [Bug-tar] GNU tar 1.19 on HP-UX
Date: Tue, 16 Oct 2007 13:34:49 -0700
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.1 (gnu/linux)

"H.Merijn Brand" <address@hidden> writes:

> cpp: "xx.c", line 1: warning 2012: Unrepresentable preprocessor number 
> 9223372036854775807LL

I installed this patch into gnulib to catch the problem there, too.

2007-10-16  Paul Eggert  <address@hidden>

        Check for 64-bit int errors in HP-UX 10.20 preprocessor.
        Problem reported by H.Merijn Brand in
        <http://lists.gnu.org/archive/html/bug-tar/2007-10/msg00018.html>.
        * m4/longlong.m4 (AC_TYPE_LONG_LONG_INT): Check preprocessor too.
        * m4/ulonglong.m4 (AC_TYPE_UNSIGNED_LONG_LONG_INT): Likewise.

diff --git a/m4/longlong.m4 b/m4/longlong.m4
index 1f9e862..5799c39 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 9fae98e..e980789 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;]],




reply via email to

[Prev in Thread] Current Thread [Next in Thread]