]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
configure.ac: Remove long long and __int64 type checks...
authorRichard Biener <rguenther@suse.de>
Mon, 26 May 2014 08:19:02 +0000 (08:19 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Mon, 26 May 2014 08:19:02 +0000 (08:19 +0000)
2014-05-26  Richard Biener  <rguenther@suse.de>

libcpp/
* configure.ac: Remove long long and __int64 type checks,
add check for uint64_t and fail if that wasn't found.
* include/cpplib.h (cpp_num_part): Use uint64_t.
* config.in: Regenerate.
* configure: Likewise.

gcc/
* configure.ac: Drop __int64 type check.  Insist that we
found uint64_t and int64_t.
* hwint.h (HOST_BITS_PER___INT64): Remove.
(HOST_BITS_PER_WIDE_INT): Define to 64 and remove
__int64 case.
(HOST_WIDE_INT_PRINT_*): Remove 32bit case.
(HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
(HOST_WIDEST_FAST_INT): Remove __int64 case.
* vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
for dst_q_src_df_rms_cdt.
* configure: Regenerate.
* config.in: Likewise.

From-SVN: r210928

gcc/ChangeLog
gcc/config.in
gcc/configure
gcc/configure.ac
gcc/hwint.h
gcc/vmsdbg.h
libcpp/ChangeLog
libcpp/config.in
libcpp/configure
libcpp/configure.ac
libcpp/include/cpplib.h

index cdd447791ba0aca20defa835d7b643101c424aa6..d994917ac731bfb804f739e7c6044aa7ac128fe4 100644 (file)
@@ -1,3 +1,18 @@
+2014-05-26  Richard Biener  <rguenther@suse.de>
+
+       * configure.ac: Drop __int64 type check.  Insist that we
+       found uint64_t and int64_t.
+       * hwint.h (HOST_BITS_PER___INT64): Remove.
+       (HOST_BITS_PER_WIDE_INT): Define to 64 and remove
+       __int64 case.
+       (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
+       (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
+       (HOST_WIDEST_FAST_INT): Remove __int64 case.
+       * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
+       for dst_q_src_df_rms_cdt.
+       * configure: Regenerate.
+       * config.in: Likewise.
+
 2014-05-26  Michael Tautschnig  <mt@debian.org>
 
        PR target/61249
index f03ed8288a143ac616acc0c140cbe5a94558d181..a3d169be1cbc95eed20df5eddf97dd4f040425ed 100644 (file)
 #endif
 
 
-/* Define to 1 if the system has the type `__int64'. */
-#ifndef USED_FOR_TARGET
-#undef HAVE___INT64
-#endif
-
-
 /* Define if cloog is in use. */
 #ifndef USED_FOR_TARGET
 #undef HAVE_cloog
 #endif
 
 
-/* The size of `__int64', as computed by sizeof. */
-#ifndef USED_FOR_TARGET
-#undef SIZEOF___INT64
-#endif
-
-
 /* Define to 1 if you have the ANSI C header files. */
 #ifndef USED_FOR_TARGET
 #undef STDC_HEADERS
 #endif
 
 
-/* Define to 1 if the 'long long' (or '__int64') is wider than 'long' but
-   still efficiently supported by the host hardware. */
+/* Define to 1 if the 'long long' type is wider than 'long' but still
+   efficiently supported by the host hardware. */
 #ifndef USED_FOR_TARGET
 #undef USE_LONG_LONG_FOR_WIDEST_FAST_INT
 #endif
index 1440d7e7d340a11911c6dac7f35355f8c121aa07..fe76232a56db1dd342ffe879b06efa1df0ea6e0c 100755 (executable)
@@ -5860,49 +5860,6 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 
-fi
-
-ac_fn_c_check_type "$LINENO" "__int64" "ac_cv_type___int64" "$ac_includes_default"
-if test "x$ac_cv_type___int64" = x""yes; then :
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE___INT64 1
-_ACEOF
-
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of __int64" >&5
-$as_echo_n "checking size of __int64... " >&6; }
-if test "${ac_cv_sizeof___int64+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (__int64))" "ac_cv_sizeof___int64"        "$ac_includes_default"; then :
-
-else
-  if test "$ac_cv_type___int64" = yes; then
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ as_fn_set_status 77
-as_fn_error "cannot compute sizeof (__int64)
-See \`config.log' for more details." "$LINENO" 5; }; }
-   else
-     ac_cv_sizeof___int64=0
-   fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof___int64" >&5
-$as_echo "$ac_cv_sizeof___int64" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF___INT64 $ac_cv_sizeof___int64
-_ACEOF
-
-
 fi
 
 ac_fn_c_find_intX_t "$LINENO" "8" "ac_cv_c_int8_t"
@@ -6269,6 +6226,9 @@ fi
 
 
 
+if test x"$ac_cv_c_uint64_t" = x"no" -o x"$ac_cv_c_int64_t" = x"no"; then
+  as_fn_error "uint64_t or int64_t not found" "$LINENO" 5
+fi
 
 # ---------------------
 # Warnings and checking
@@ -17988,7 +17948,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 17991 "configure"
+#line 17951 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -18094,7 +18054,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 18097 "configure"
+#line 18057 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
index 281ce8e06a1f6e8ab5a4a6fdb36630af02944216..0f8566f933631c10a9513c95612a49200f859711 100644 (file)
@@ -311,8 +311,10 @@ AC_CHECK_SIZEOF(short)
 AC_CHECK_SIZEOF(int)
 AC_CHECK_SIZEOF(long)
 AC_CHECK_TYPES([long long], [AC_CHECK_SIZEOF(long long)])
-AC_CHECK_TYPES([__int64], [AC_CHECK_SIZEOF(__int64)])
 GCC_STDINT_TYPES
+if test x"$ac_cv_c_uint64_t" = x"no" -o x"$ac_cv_c_int64_t" = x"no"; then
+  AC_MSG_ERROR([uint64_t or int64_t not found])
+fi
 
 # ---------------------
 # Warnings and checking
@@ -1374,7 +1376,7 @@ fi
 
 if test x$use_long_long_for_widest_fast_int = xyes; then
        AC_DEFINE(USE_LONG_LONG_FOR_WIDEST_FAST_INT, 1,
-[Define to 1 if the 'long long' (or '__int64') is wider than 'long' but still
+[Define to 1 if the 'long long' type is wider than 'long' but still
 efficiently supported by the host hardware.])
 fi
 
index 4cc4614b4ead9d2fb739c54a4f49b91950d8549e..6d2df9d6a996b6a975e3178c24170c879646f966 100644 (file)
@@ -44,40 +44,28 @@ extern char sizeof_long_long_must_be_8[sizeof (long long) == 8 ? 1 : -1];
 #ifdef HAVE_LONG_LONG
 # define HOST_BITS_PER_LONGLONG (CHAR_BIT * SIZEOF_LONG_LONG)
 #endif
-#ifdef HAVE___INT64
-# define HOST_BITS_PER___INT64 (CHAR_BIT * SIZEOF___INT64)
-#endif
 
-/* Set HOST_WIDE_INT.  This should be the widest efficient host
-   integer type.  It can be 32 or 64 bits, except that if we are
-   targeting a machine with 64-bit size_t then it has to be 64 bits.
+/* Set HOST_WIDE_INT, this should be always 64 bits.
 
    With a sane ABI, 'long' is the largest efficient host integer type.
-   Thus, we use that unless we have to use 'long long' or '__int64'
-   because we're targeting a 64-bit machine from a 32-bit host.  */
+   Thus, we use that unless we have to use 'long long'
+   because we're on a 32-bit host.  */
 
-#if HOST_BITS_PER_LONG >= 64
-#   define HOST_BITS_PER_WIDE_INT HOST_BITS_PER_LONG
+#define HOST_BITS_PER_WIDE_INT 64
+#if HOST_BITS_PER_LONG == 64
 #   define HOST_WIDE_INT long
 #   define HOST_WIDE_INT_C(X) X ## L
 #else
-# if HOST_BITS_PER_LONGLONG >= 64
-#   define HOST_BITS_PER_WIDE_INT HOST_BITS_PER_LONGLONG
+# if HOST_BITS_PER_LONGLONG == 64
 #   define HOST_WIDE_INT long long
 #   define HOST_WIDE_INT_C(X) X ## LL
 # else
-#  if HOST_BITS_PER___INT64 >= 64
-#   define HOST_BITS_PER_WIDE_INT HOST_BITS_PER___INT64
-#   define HOST_WIDE_INT __int64
-#   define HOST_WIDE_INT_C(X) X ## i64
-#  else
-    #error "Unable to find a suitable type for HOST_WIDE_INT"
-#  endif
+   #error "Unable to find a suitable type for HOST_WIDE_INT"
 # endif
 #endif
 
 /* Print support for half a host wide int.  */
-#define HOST_BITS_PER_HALF_WIDE_INT (HOST_BITS_PER_WIDE_INT / 2)
+#define HOST_BITS_PER_HALF_WIDE_INT 32
 #if HOST_BITS_PER_HALF_WIDE_INT == HOST_BITS_PER_LONG
 # define HOST_HALF_WIDE_INT long
 # define HOST_HALF_WIDE_INT_PRINT HOST_LONG_FORMAT
@@ -126,23 +114,15 @@ typedef HOST_WIDE_INT __gcc_host_wide_int__;
 #if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG
 # define HOST_WIDE_INT_PRINT HOST_LONG_FORMAT
 # define HOST_WIDE_INT_PRINT_C "L"
-  /* 'long' might be 32 or 64 bits, and the number of leading zeroes
-     must be tweaked accordingly.  */
-# if HOST_BITS_PER_WIDE_INT == 64
-#  define HOST_WIDE_INT_PRINT_DOUBLE_HEX \
-     "0x%" HOST_LONG_FORMAT "x%016" HOST_LONG_FORMAT "x"
-#  define HOST_WIDE_INT_PRINT_PADDED_HEX \
-     "%016" HOST_LONG_FORMAT "x"
-# else
-#  define HOST_WIDE_INT_PRINT_DOUBLE_HEX \
-     "0x%" HOST_LONG_FORMAT "x%08" HOST_LONG_FORMAT "x"
-#  define HOST_WIDE_INT_PRINT_PADDED_HEX \
-     "%08" HOST_LONG_FORMAT "x"
-# endif
+  /* HOST_BITS_PER_WIDE_INT is 64 bits.  */
+# define HOST_WIDE_INT_PRINT_DOUBLE_HEX \
+    "0x%" HOST_LONG_FORMAT "x%016" HOST_LONG_FORMAT "x"
+# define HOST_WIDE_INT_PRINT_PADDED_HEX \
+    "%016" HOST_LONG_FORMAT "x"
 #else
 # define HOST_WIDE_INT_PRINT HOST_LONG_LONG_FORMAT
 # define HOST_WIDE_INT_PRINT_C "LL"
-  /* We can assume that 'long long' is at least 64 bits.  */
+  /* HOST_BITS_PER_WIDE_INT is 64 bits.  */
 # define HOST_WIDE_INT_PRINT_DOUBLE_HEX \
     "0x%" HOST_LONG_LONG_FORMAT "x%016" HOST_LONG_LONG_FORMAT "x"
 # define HOST_WIDE_INT_PRINT_PADDED_HEX \
@@ -155,42 +135,17 @@ typedef HOST_WIDE_INT __gcc_host_wide_int__;
 #define HOST_WIDE_INT_PRINT_HEX "%#" HOST_WIDE_INT_PRINT "x"
 #define HOST_WIDE_INT_PRINT_HEX_PURE "%" HOST_WIDE_INT_PRINT "x"
 
-/* Set HOST_WIDEST_INT.  This is a 64-bit type unless the compiler
-   in use has no 64-bit type at all; in that case it's 32 bits.  */
-
-#if HOST_BITS_PER_WIDE_INT >= 64 \
-    || (HOST_BITS_PER_LONGLONG < 64 && HOST_BITS_PER___INT64 < 64)
-# define HOST_WIDEST_INT                     HOST_WIDE_INT
-# define HOST_BITS_PER_WIDEST_INT            HOST_BITS_PER_WIDE_INT
-# define HOST_WIDEST_INT_PRINT                HOST_WIDE_INT_PRINT
-# define HOST_WIDEST_INT_PRINT_DEC           HOST_WIDE_INT_PRINT_DEC
-# define HOST_WIDEST_INT_PRINT_DEC_C         HOST_WIDE_INT_PRINT_DEC_C
-# define HOST_WIDEST_INT_PRINT_UNSIGNED              HOST_WIDE_INT_PRINT_UNSIGNED
-# define HOST_WIDEST_INT_PRINT_HEX           HOST_WIDE_INT_PRINT_HEX
-# define HOST_WIDEST_INT_PRINT_DOUBLE_HEX     HOST_WIDE_INT_PRINT_DOUBLE_HEX
-# define HOST_WIDEST_INT_C(X)                HOST_WIDE_INT (X)
-#else
-# if HOST_BITS_PER_LONGLONG >= 64
-#  define HOST_BITS_PER_WIDEST_INT           HOST_BITS_PER_LONGLONG
-#  define HOST_WIDEST_INT                    long long
-#  define HOST_WIDEST_INT_C(X)               X ## LL
-# else
-#  if HOST_BITS_PER___INT64 >= 64
-#   define HOST_BITS_PER_WIDEST_INT          HOST_BITS_PER___INT64
-#   define HOST_WIDEST_INT                   __int64
-#   define HOST_WIDEST_INT_C(X)                      X ## i64
-#  else
-    #error "This line should be impossible to reach"
-#  endif
-# endif
-# define HOST_WIDEST_INT_PRINT                HOST_LONG_LONG_FORMAT
-# define HOST_WIDEST_INT_PRINT_DEC           "%" HOST_LONG_LONG_FORMAT "d"
-# define HOST_WIDEST_INT_PRINT_DEC_C         "%" HOST_LONG_LONG_FORMAT "dLL"
-# define HOST_WIDEST_INT_PRINT_UNSIGNED              "%" HOST_LONG_LONG_FORMAT "u"
-# define HOST_WIDEST_INT_PRINT_HEX           "%#" HOST_LONG_LONG_FORMAT "x"
-# define HOST_WIDEST_INT_PRINT_DOUBLE_HEX     \
-    "0x%" HOST_LONG_LONG_FORMAT "x%016" HOST_LONG_LONG_FORMAT "x"
-#endif
+/* Set HOST_WIDEST_INT.  This is a 64-bit type.  */
+
+#define HOST_WIDEST_INT                              HOST_WIDE_INT
+#define HOST_BITS_PER_WIDEST_INT             HOST_BITS_PER_WIDE_INT
+#define HOST_WIDEST_INT_PRINT                HOST_WIDE_INT_PRINT
+#define HOST_WIDEST_INT_PRINT_DEC            HOST_WIDE_INT_PRINT_DEC
+#define HOST_WIDEST_INT_PRINT_DEC_C          HOST_WIDE_INT_PRINT_DEC_C
+#define HOST_WIDEST_INT_PRINT_UNSIGNED       HOST_WIDE_INT_PRINT_UNSIGNED
+#define HOST_WIDEST_INT_PRINT_HEX            HOST_WIDE_INT_PRINT_HEX
+#define HOST_WIDEST_INT_PRINT_DOUBLE_HEX      HOST_WIDE_INT_PRINT_DOUBLE_HEX
+#define HOST_WIDEST_INT_C(X)                 HOST_WIDE_INT (X)
 
 /* Define HOST_WIDEST_FAST_INT to the widest integer type supported
    efficiently in hardware.  (That is, the widest integer type that fits
@@ -203,12 +158,8 @@ typedef HOST_WIDE_INT __gcc_host_wide_int__;
 #  ifdef HAVE_LONG_LONG
 #    define HOST_WIDEST_FAST_INT long long
 #    define HOST_BITS_PER_WIDEST_FAST_INT HOST_BITS_PER_LONGLONG
-#  elif defined (HAVE___INT64)
-#    define HOST_WIDEST_FAST_INT __int64
-#    define HOST_BITS_PER_WIDEST_FAST_INT HOST_BITS_PER___INT64
 #  else
-#    error "Your host said it wanted to use long long or __int64 but neither"
-#    error "exist"
+#    error "Your host said it wanted to use long long but that does not exist"
 #  endif
 #else
 #  define HOST_WIDEST_FAST_INT long
index db1a416a8bacaafdcbf4afb64aad65d2474a6406..8e656cee6cd959c04d71a154128b5b286cff8e71 100644 (file)
@@ -216,13 +216,7 @@ typedef struct _DST_SRC_COMMAND
          unsigned char dst_b_src_df_length;
          unsigned char dst_b_src_df_flags;
          unsigned short int dst_w_src_df_fileid;
-#ifdef HAVE_LONG_LONG
-         long long dst_q_src_df_rms_cdt;
-#else
-#ifdef HAVE___INT64
-         __int64 dst_q_src_df_rms_cdt;
-#endif
-#endif
+         int64_t dst_q_src_df_rms_cdt;
          unsigned int dst_l_src_df_rms_ebk;
          unsigned short int dst_w_src_df_rms_ffb;
          unsigned char dst_b_src_df_rms_rfo;
index 323a75786a6fc3f6a1ca413ed3cc9f1cc578aaf2..8288423941dbab8f1f0d3c1412cc5632a28b4b72 100644 (file)
@@ -1,3 +1,11 @@
+2014-05-26  Richard Biener  <rguenther@suse.de>
+
+       * configure.ac: Remove long long and __int64 type checks,
+       add check for uint64_t and fail if that wasn't found.
+       * include/cpplib.h (cpp_num_part): Use uint64_t.
+       * config.in: Regenerate.
+       * configure: Likewise.
+
 2014-05-21  Marek Polacek  <polacek@redhat.com>
 
        PR c/61212
index 1d69a75a2dffb5b3ef047da7769a40e0d7cb7f07..8df00ec2357209a0f0b4af3b02fa19fe48a24f30 100644 (file)
 /* Define to 1 if you have the <locale.h> header file. */
 #undef HAVE_LOCALE_H
 
-/* Define to 1 if the system has the type `long long'. */
-#undef HAVE_LONG_LONG
-
 /* Define to 1 if you have the <memory.h> header file. */
 #undef HAVE_MEMORY_H
 
 /* Define to 1 if you have the <unistd.h> header file. */
 #undef HAVE_UNISTD_H
 
-/* Define to 1 if the system has the type `__int64'. */
-#undef HAVE___INT64
-
 /* Define as const if the declaration of iconv() needs const. */
 #undef ICONV_CONST
 
 /* The size of `long', as computed by sizeof. */
 #undef SIZEOF_LONG
 
-/* The size of `long long', as computed by sizeof. */
-#undef SIZEOF_LONG_LONG
-
-/* The size of `__int64', as computed by sizeof. */
-#undef SIZEOF___INT64
-
 /* If using the C implementation of alloca, define if you know the
    direction of stack growth for your system; otherwise it will be
    automatically deduced at runtime.
 /* Define to 1 if you need to in order for `stat' and other things to work. */
 #undef _POSIX_SOURCE
 
+/* Define for Solaris 2.5.1 so the uint64_t typedef from <sys/synch.h>,
+   <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
+   #define below would cause a syntax error. */
+#undef _UINT64_T
+
 /* Define to empty if `const' does not conform to ANSI C. */
 #undef const
 
 /* Define to `int' if <sys/types.h> does not define. */
 #undef ssize_t
 
+/* Define to the type of an unsigned integer type of width exactly 64 bits if
+   such a type exists and the standard includes do not define it. */
+#undef uint64_t
+
 /* Define to the type of an unsigned integer type wide enough to hold a
    pointer, if such a type exists, and if the system does not define it. */
 #undef uintptr_t
index 6b0f6dc4a7279ab137e87cef7cb4dd758170ffe7..096ac8b5f2146ca482d9a88f0fd8e7dc78d59e7a 100755 (executable)
@@ -1822,6 +1822,58 @@ $as_echo "$ac_res" >&6; }
 
 } # ac_fn_c_check_type
 
+# ac_fn_c_find_uintX_t LINENO BITS VAR
+# ------------------------------------
+# Finds an unsigned integer type with width BITS, setting cache variable VAR
+# accordingly.
+ac_fn_c_find_uintX_t ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5
+$as_echo_n "checking for uint$2_t... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+else
+  eval "$3=no"
+     for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \
+        'unsigned long long int' 'unsigned short int' 'unsigned char'; do
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(($ac_type) -1 >> ($2 - 1) == 1)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  case $ac_type in #(
+  uint$2_t) :
+    eval "$3=yes" ;; #(
+  *) :
+    eval "$3=\$ac_type" ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+       eval as_val=\$$3
+   if test "x$as_val" = x""no; then :
+
+else
+  break
+fi
+     done
+fi
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_find_uintX_t
+
 # ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
 # --------------------------------------------
 # Tries to find the compile-time value of EXPR in a program that includes
@@ -5566,92 +5618,23 @@ _ACEOF
 
 fi
 
-ac_fn_c_check_type "$LINENO" "long long" "ac_cv_type_long_long" "$ac_includes_default"
-if test "x$ac_cv_type_long_long" = x""yes; then :
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_LONG_LONG 1
-_ACEOF
-
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5
-$as_echo_n "checking size of long long... " >&6; }
-if test "${ac_cv_sizeof_long_long+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long"        "$ac_includes_default"; then :
-
-else
-  if test "$ac_cv_type_long_long" = yes; then
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ as_fn_set_status 77
-as_fn_error "cannot compute sizeof (long long)
-See \`config.log' for more details." "$LINENO" 5; }; }
-   else
-     ac_cv_sizeof_long_long=0
-   fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5
-$as_echo "$ac_cv_sizeof_long_long" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long
-_ACEOF
-
-
-fi
-
-ac_fn_c_check_type "$LINENO" "__int64" "ac_cv_type___int64" "$ac_includes_default"
-if test "x$ac_cv_type___int64" = x""yes; then :
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE___INT64 1
-_ACEOF
-
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of __int64" >&5
-$as_echo_n "checking size of __int64... " >&6; }
-if test "${ac_cv_sizeof___int64+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (__int64))" "ac_cv_sizeof___int64"        "$ac_includes_default"; then :
-
-else
-  if test "$ac_cv_type___int64" = yes; then
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ as_fn_set_status 77
-as_fn_error "cannot compute sizeof (__int64)
-See \`config.log' for more details." "$LINENO" 5; }; }
-   else
-     ac_cv_sizeof___int64=0
-   fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof___int64" >&5
-$as_echo "$ac_cv_sizeof___int64" >&6; }
+ac_fn_c_find_uintX_t "$LINENO" "64" "ac_cv_c_uint64_t"
+case $ac_cv_c_uint64_t in #(
+  no|yes) ;; #(
+  *)
 
+$as_echo "#define _UINT64_T 1" >>confdefs.h
 
 
 cat >>confdefs.h <<_ACEOF
-#define SIZEOF___INT64 $ac_cv_sizeof___int64
+#define uint64_t $ac_cv_c_uint64_t
 _ACEOF
+;;
+  esac
 
-
+if test x"$ac_cv_c_uint64_t" = x"no"; then
+  as_fn_error "uint64_t not found" "$LINENO" 5
 fi
-
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if test "${ac_cv_struct_tm+set}" = set; then :
index 93616add3bd15d5c85ad23337b37e058e2be3ecc..5f008a4a67fc8d4aed5b53330efe0bbe34216e27 100644 (file)
@@ -64,8 +64,10 @@ AC_TYPE_SIZE_T
 AC_TYPE_SSIZE_T
 AC_TYPE_UINTPTR_T
 AC_CHECK_TYPE(ptrdiff_t, int)
-AC_CHECK_TYPES([long long], [AC_CHECK_SIZEOF(long long)])
-AC_CHECK_TYPES([__int64], [AC_CHECK_SIZEOF(__int64)])
+AC_TYPE_UINT64_T
+if test x"$ac_cv_c_uint64_t" = x"no"; then
+  AC_MSG_ERROR([uint64_t not found])
+fi
 AC_STRUCT_TM
 AC_CHECK_SIZEOF(int)
 AC_CHECK_SIZEOF(long)
index 594c89940dff144af29a5835980b81ca146db0a8..a83452b91453454e573bca147c9f972e8fb7990e 100644 (file)
@@ -820,23 +820,9 @@ extern int cpp_defined (cpp_reader *, const unsigned char *, int);
 /* A preprocessing number.  Code assumes that any unused high bits of
    the double integer are set to zero.  */
 
-/* Find a type with at least 64bit precision, mimicking hwint.h.
-   This type has to be equal to unsigned HOST_WIDE_INT, see
+/* This type has to be equal to unsigned HOST_WIDE_INT, see
    gcc/c-family/c-lex.c.  */
-#if SIZEOF_LONG >= 8
-typedef unsigned long cpp_num_part;
-#else
-# if SIZEOF_LONG_LONG >= 8
-typedef unsigned long long cpp_num_part;
-# else
-#  if SIZEOF___INT64 >= 8
-typedef unsigned __int64 cpp_num_part;
-#  else
-    #error "This line should be impossible to reach"
-#  endif
-# endif
-#endif
-
+typedef uint64_t cpp_num_part;
 typedef struct cpp_num cpp_num;
 struct cpp_num
 {