aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog15
-rw-r--r--gcc/config.in16
-rwxr-xr-xgcc/configure50
-rw-r--r--gcc/configure.ac6
-rw-r--r--gcc/hwint.h101
-rw-r--r--gcc/vmsdbg.h8
6 files changed, 53 insertions, 143 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index cdd4477..d994917 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/config.in b/gcc/config.in
index f03ed82..a3d169b 100644
--- a/gcc/config.in
+++ b/gcc/config.in
@@ -1655,12 +1655,6 @@
#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
@@ -1807,12 +1801,6 @@
#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
@@ -1866,8 +1854,8 @@
#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
diff --git a/gcc/configure b/gcc/configure
index 1440d7e..fe76232 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -5862,49 +5862,6 @@ _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"
case $ac_cv_c_int8_t in #(
no|yes) ;; #(
@@ -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
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 281ce8e..0f8566f 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -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
diff --git a/gcc/hwint.h b/gcc/hwint.h
index 4cc4614b..6d2df9d 100644
--- a/gcc/hwint.h
+++ b/gcc/hwint.h
@@ -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
diff --git a/gcc/vmsdbg.h b/gcc/vmsdbg.h
index db1a416..8e656ce 100644
--- a/gcc/vmsdbg.h
+++ b/gcc/vmsdbg.h
@@ -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;