diff options
author | Richard Henderson <rth@redhat.com> | 2012-06-13 14:52:47 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2012-06-13 14:52:47 -0700 |
commit | fd2d912115ac65469b83b85224545d5230195b01 (patch) | |
tree | 646aa2c22a85cb8994cc6aae956fff1c60e9e36f /gcc/hwint.h | |
parent | db8c4965beaa8a8f0a4709f3ea2c43db7eb703e4 (diff) | |
download | gcc-fd2d912115ac65469b83b85224545d5230195b01.tar.gz |
Add and use HOST_WIDEST_INT_C, HOST_WIDE_INT_C.
From-SVN: r188535
Diffstat (limited to 'gcc/hwint.h')
-rw-r--r-- | gcc/hwint.h | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/gcc/hwint.h b/gcc/hwint.h index 9885911a01a..17346392f91 100644 --- a/gcc/hwint.h +++ b/gcc/hwint.h @@ -1,5 +1,5 @@ /* HOST_WIDE_INT definitions for the GNU compiler. - Copyright (C) 1998, 2002, 2004, 2008, 2009, 2010 + Copyright (C) 1998, 2002, 2004, 2008, 2009, 2010, 2012 Free Software Foundation, Inc. This file is part of GCC. @@ -60,20 +60,25 @@ extern char sizeof_long_long_must_be_8[sizeof(long long) == 8 ? 1 : -1]; #if HOST_BITS_PER_LONG >= 64 || !defined NEED_64BIT_HOST_WIDE_INT # define HOST_BITS_PER_WIDE_INT HOST_BITS_PER_LONG # define HOST_WIDE_INT long +# define HOST_WIDE_INT_C(X) X ## L #else # if HOST_BITS_PER_LONGLONG >= 64 # define HOST_BITS_PER_WIDE_INT HOST_BITS_PER_LONGLONG # define HOST_WIDE_INT long long +# define HOST_WIDE_INT_C(X) X ## LL # else # if HOST_BITS_PER___INT64 >= 64 # define HOST_BITS_PER_WIDE_INT HOST_BITS_PER___INT64 # define HOST_WIDE_INT __int64 +# define HOST_WIDE_INT_C(X) X ## i64 # else #error "Unable to find a suitable type for HOST_WIDE_INT" # endif # endif #endif +#define HOST_WIDE_INT_1 HOST_WIDE_INT_C(1) + /* This is a magic identifier which allows GCC to figure out the type of HOST_WIDE_INT for %wd specifier checks. You must issue this typedef before using the __asm_fprintf__ format attribute. */ @@ -84,7 +89,6 @@ typedef HOST_WIDE_INT __gcc_host_wide_int__; #if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG # define HOST_WIDE_INT_PRINT HOST_LONG_FORMAT # define HOST_WIDE_INT_PRINT_C "L" -# define HOST_WIDE_INT_1 1L /* 'long' might be 32 or 64 bits, and the number of leading zeroes must be tweaked accordingly. */ # if HOST_BITS_PER_WIDE_INT == 64 @@ -97,7 +101,6 @@ typedef HOST_WIDE_INT __gcc_host_wide_int__; #else # define HOST_WIDE_INT_PRINT HOST_LONG_LONG_FORMAT # define HOST_WIDE_INT_PRINT_C "LL" -# define HOST_WIDE_INT_1 1LL /* We can assume that 'long long' is at least 64 bits. */ # define HOST_WIDE_INT_PRINT_DOUBLE_HEX \ "0x%" HOST_LONG_LONG_FORMAT "x%016" HOST_LONG_LONG_FORMAT "x" @@ -122,14 +125,17 @@ typedef HOST_WIDE_INT __gcc_host_wide_int__; # define HOST_WIDEST_INT_PRINT_UNSIGNED HOST_WIDE_INT_PRINT_UNSIGNED # define HOST_WIDEST_INT_PRINT_HEX HOST_WIDE_INT_PRINT_HEX # define HOST_WIDEST_INT_PRINT_DOUBLE_HEX HOST_WIDE_INT_PRINT_DOUBLE_HEX +# define HOST_WIDEST_INT_C(X) HOST_WIDE_INT(X) #else # if HOST_BITS_PER_LONGLONG >= 64 # define HOST_BITS_PER_WIDEST_INT HOST_BITS_PER_LONGLONG # define HOST_WIDEST_INT long long +# define HOST_WIDEST_INT_C(X) X ## LL # else # if HOST_BITS_PER___INT64 >= 64 # define HOST_BITS_PER_WIDEST_INT HOST_BITS_PER___INT64 # define HOST_WIDEST_INT __int64 +# define HOST_WIDEST_INT_C(X) X ## i64 # else #error "This line should be impossible to reach" # endif |