From 3de08b50f2dfa1502308875ae535e63916aa33b8 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Tue, 16 Oct 2007 13:25:57 -0700 Subject: [PATCH] Check for 64-bit int errors in HP-UX 10.20 preprocessor. Problem reported by H.Merijn Brand in . * lib/autoconf/types.m4 (AC_TYPE_LONG_LONG_INT): (AC_TYPE_UNSIGNED_LONG_LONG_INT): Check that preprocessor handles 64-bit ints, too. --- ChangeLog | 9 +++++++++ lib/autoconf/types.m4 | 12 +++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index b0f6842a..101ba00d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2007-10-16 Paul Eggert + + Check for 64-bit int errors in HP-UX 10.20 preprocessor. + Problem reported by H.Merijn Brand in + . + * lib/autoconf/types.m4 (AC_TYPE_LONG_LONG_INT): + (AC_TYPE_UNSIGNED_LONG_LONG_INT): + Check that preprocessor handles 64-bit ints, too. + 2007-10-16 Eric Blake m4_map is a looping construct. diff --git a/lib/autoconf/types.m4 b/lib/autoconf/types.m4 index 4d92f9b8..f92b29cf 100644 --- a/lib/autoconf/types.m4 +++ b/lib/autoconf/types.m4 @@ -1,7 +1,7 @@ # This file is part of Autoconf. -*- Autoconf -*- # Type related macros: existence, sizeof, and structure members. # -# Copyright (C) 2000, 2001, 2002, 2004, 2005, 2006 Free Software +# Copyright (C) 2000, 2001, 2002, 2004, 2005, 2006, 2007 Free Software # Foundation, Inc. # # This program is free software: you can redistribute it and/or modify @@ -472,7 +472,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) @@ -522,7 +525,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;]],