diff options
author | Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | 1999-02-12 06:32:36 +0000 |
---|---|---|
committer | Kaveh Ghazi <ghazi@gcc.gnu.org> | 1999-02-12 06:32:36 +0000 |
commit | f80d6fd7074325fee6c65da904dc221cb856823b (patch) | |
tree | ee2b4ff1729038749350e54551779b36ed147fb0 /gcc/system.h | |
parent | 21034cc50049b323c3ad3c6f1cc424dfc19eae80 (diff) | |
download | gcc-f80d6fd7074325fee6c65da904dc221cb856823b.zip gcc-f80d6fd7074325fee6c65da904dc221cb856823b.tar.gz gcc-f80d6fd7074325fee6c65da904dc221cb856823b.tar.bz2 |
* system.h: Provide a definition for HOST_WIDEST_INT, etc.
From-SVN: r25164
Diffstat (limited to 'gcc/system.h')
-rw-r--r-- | gcc/system.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/gcc/system.h b/gcc/system.h index bd23967..3999f42 100644 --- a/gcc/system.h +++ b/gcc/system.h @@ -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> |