From: Kaveh R. Ghazi Date: Fri, 12 Feb 1999 06:32:36 +0000 (+0000) Subject: * system.h: Provide a definition for HOST_WIDEST_INT, etc. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f80d6fd7074325fee6c65da904dc221cb856823b;p=gcc.git * system.h: Provide a definition for HOST_WIDEST_INT, etc. From-SVN: r25164 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7e03bf54acc..47b8e50e418 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Fri Feb 12 09:24:26 1999 Kaveh R. Ghazi + + * system.h: Provide a definition for HOST_WIDEST_INT, etc. + Fri Feb 12 23:37:26 1999 Michael Hayes * config/c4x/c4x.c (c4x_address_cost): Revert 9 Feb change. diff --git a/gcc/system.h b/gcc/system.h index bd23967f71a..3999f42c451 100644 --- a/gcc/system.h +++ b/gcc/system.h @@ -159,6 +159,34 @@ extern int errno; # include #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 + 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 # include