OSDN Git Service

* system.h: Provide a definition for HOST_WIDEST_INT, etc.
authorghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 12 Feb 1999 06:32:36 +0000 (06:32 +0000)
committerghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 12 Feb 1999 06:32:36 +0000 (06:32 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@25164 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/system.h

index 7e03bf5..47b8e50 100644 (file)
@@ -1,3 +1,7 @@
+Fri Feb 12 09:24:26 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * system.h: Provide a definition for HOST_WIDEST_INT, etc.
+
 Fri Feb 12 23:37:26 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
 
        * config/c4x/c4x.c (c4x_address_cost): Revert 9 Feb change. 
index bd23967..3999f42 100644 (file)
@@ -159,6 +159,34 @@ extern int errno;
 # include <limits.h>
 #endif
 
+/* Find HOST_WIDEST_INT and set its bit size, type and print macros.
+   It will be the largest integer mode supported by the host which may
+   (or may not) be larger than HOST_WIDE_INT.  This must appear after
+   <limits.h> since we only use `long long' if its bigger than a
+   `long' and also if it is supported by macros in limits.h.  For old
+   hosts which don't have a limits.h (and thus won't include it in
+   stage2 cause we don't rerun configure) we assume gcc supports long
+   long.)  Note, you won't get these defined if you don't include
+   {ht}config.h before this file to set the HOST_BITS_PER_* macros. */
+
+#ifndef HOST_WIDEST_INT
+# if defined (HOST_BITS_PER_LONG) && defined (HOST_BITS_PER_LONGLONG)
+#  if (HOST_BITS_PER_LONGLONG > HOST_BITS_PER_LONG) && (defined (LONG_LONG_MAX) || defined (LONGLONG_MAX) || defined (LLONG_MAX) || defined (__GNUC__))
+#   define HOST_BITS_PER_WIDEST_INT HOST_BITS_PER_LONGLONG
+#   define HOST_WIDEST_INT long long
+#   define HOST_WIDEST_INT_PRINT_DEC "%lld"
+#   define HOST_WIDEST_INT_PRINT_UNSIGNED "%llu"
+#   define HOST_WIDEST_INT_PRINT_HEX "0x%llx"
+#  else
+#   define HOST_BITS_PER_WIDEST_INT HOST_BITS_PER_LONG
+#   define HOST_WIDEST_INT long
+#   define HOST_WIDEST_INT_PRINT_DEC "%ld"
+#   define HOST_WIDEST_INT_PRINT_UNSIGNED "%lu"
+#   define HOST_WIDEST_INT_PRINT_HEX "0x%lx"
+#  endif /*(long long>long) && (LONG_LONG_MAX||LONGLONG_MAX||LLONG_MAX||GNUC)*/
+# endif /* defined(HOST_BITS_PER_LONG) && defined(HOST_BITS_PER_LONGLONG) */
+#endif /* ! HOST_WIDEST_INT */
+
 #ifdef TIME_WITH_SYS_TIME
 # include <sys/time.h>
 # include <time.h>