summaryrefslogtreecommitdiff
path: root/gcc/hwint.h
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2001-01-09 09:28:07 +0000
committerAlexandre Oliva <aoliva@gcc.gnu.org>2001-01-09 09:28:07 +0000
commitbad48d7ebd711c4e79d6ae31602c9fb805d2d5b7 (patch)
tree7c71d9ceb57a1d61ac186ec01a55bcb1a6ae39fa /gcc/hwint.h
parentafe09d12d826c1aa013c54a0572d9b9131c0f32a (diff)
downloadgcc-bad48d7ebd711c4e79d6ae31602c9fb805d2d5b7.tar.gz
hwint.h (HOST_BITS_PER_WIDE_INT, [...]): Use long long if it's wider than long and the target's long is wider than the...
* hwint.h (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT): Use long long if it's wider than long and the target's long is wider than the host's. From-SVN: r38820
Diffstat (limited to 'gcc/hwint.h')
-rw-r--r--gcc/hwint.h25
1 files changed, 24 insertions, 1 deletions
diff --git a/gcc/hwint.h b/gcc/hwint.h
index 91973b8187a..767620af506 100644
--- a/gcc/hwint.h
+++ b/gcc/hwint.h
@@ -1,5 +1,5 @@
/* HOST_WIDE_INT definitions for the GNU compiler.
- Copyright (C) 1998 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2001 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -15,6 +15,29 @@
/* Find the largest host integer type and set its size and type. */
+/* Use long long on the host if the target has a wider long type than
+ the host. */
+
+#if ! defined HOST_BITS_PER_WIDE_INT \
+ && defined HOST_BITS_PER_LONGLONG \
+ && (HOST_BITS_PER_LONGLONG > HOST_BITS_PER_LONG) \
+ && (defined (LONG_LONG_MAX) || defined (LONGLONG_MAX) \
+ || defined (LLONG_MAX) || defined (__GNUC__))
+
+# ifdef MAX_LONG_TYPE_SIZE
+# if MAX_LONG_TYPE_SIZE > HOST_BITS_PER_LONG
+# define HOST_BITS_PER_WIDE_INT HOST_BITS_PER_LONGLONG
+# define HOST_WIDE_INT long long
+# endif
+# else
+# if LONG_TYPE_SIZE > HOST_BITS_PER_LONG
+# define HOST_BITS_PER_WIDE_INT HOST_BITS_PER_LONGLONG
+# define HOST_WIDE_INT long long
+# endif
+# endif
+
+#endif
+
#ifndef HOST_BITS_PER_WIDE_INT
# if HOST_BITS_PER_LONG > HOST_BITS_PER_INT