diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/hwint.h | 25 |
2 files changed, 30 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3ea0bc3..81bb3f8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2001-01-09 Alexandre Oliva <aoliva@redhat.com> + + * 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. + 2001-01-09 Mark Mitchell <mark@codesourcery.com> Remove support for using UWIN as a host machine. diff --git a/gcc/hwint.h b/gcc/hwint.h index 91973b8..767620a 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 |