X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fhwint.h;h=7dec86080dc41b3e4276f0e1cc6b316f72c08073;hb=f018d957a72d418d69c6d2d8bc80c9415666a9f6;hp=84ca84281d61bc0f3117f242c6d68dad65fe83f6;hpb=92ebe7d37e9c6695bc5060d58f199eab38e9cc41;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/hwint.h b/gcc/hwint.h index 84ca84281d6..7dec86080dc 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 Free Software Foundation, Inc. + Copyright (C) 1998, 2002, 2004, 2008, 2009 Free Software Foundation, Inc. This file is part of GCC. @@ -16,8 +16,14 @@ #define HOST_BITS_PER_LONG (CHAR_BIT * SIZEOF_LONG) /* The string that should be inserted into a printf style format to + indicate a "long" operand. */ +#ifndef HOST_LONG_FORMAT +#define HOST_LONG_FORMAT "l" +#endif + +/* The string that should be inserted into a printf style format to indicate a "long long" operand. */ -#ifndef HOST_LONG_LONG_FORMAT +#ifndef HOST_LONG_LONG_FORMAT #define HOST_LONG_LONG_FORMAT "ll" #endif @@ -70,17 +76,19 @@ extern char sizeof_long_long_must_be_8[sizeof(long long) == 8 ? 1 : -1]; /* Various printf format strings for HOST_WIDE_INT. */ #if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG -# define HOST_WIDE_INT_PRINT "l" +# define HOST_WIDE_INT_PRINT HOST_LONG_FORMAT # define HOST_WIDE_INT_PRINT_C "L" /* 'long' might be 32 or 64 bits, and the number of leading zeroes must be tweaked accordingly. */ # if HOST_BITS_PER_WIDE_INT == 64 -# define HOST_WIDE_INT_PRINT_DOUBLE_HEX "0x%lx%016lx" +# define HOST_WIDE_INT_PRINT_DOUBLE_HEX \ + "0x%" HOST_LONG_FORMAT "x%016" HOST_LONG_FORMAT "x" # else -# define HOST_WIDE_INT_PRINT_DOUBLE_HEX "0x%lx%08lx" +# define HOST_WIDE_INT_PRINT_DOUBLE_HEX \ + "0x%" HOST_LONG_FORMAT "x%08" HOST_LONG_FORMAT "x" # endif #else -# define HOST_WIDE_INT_PRINT "ll" +# define HOST_WIDE_INT_PRINT HOST_LONG_LONG_FORMAT # define HOST_WIDE_INT_PRINT_C "LL" /* We can assume that 'long long' is at least 64 bits. */ # define HOST_WIDE_INT_PRINT_DOUBLE_HEX \ @@ -99,6 +107,7 @@ extern char sizeof_long_long_must_be_8[sizeof(long long) == 8 ? 1 : -1]; || (HOST_BITS_PER_LONGLONG < 64 && HOST_BITS_PER___INT64 < 64) # define HOST_WIDEST_INT HOST_WIDE_INT # define HOST_BITS_PER_WIDEST_INT HOST_BITS_PER_WIDE_INT +# define HOST_WIDEST_INT_PRINT HOST_WIDE_INT_PRINT # define HOST_WIDEST_INT_PRINT_DEC HOST_WIDE_INT_PRINT_DEC # define HOST_WIDEST_INT_PRINT_DEC_C HOST_WIDE_INT_PRINT_DEC_C # define HOST_WIDEST_INT_PRINT_UNSIGNED HOST_WIDE_INT_PRINT_UNSIGNED @@ -116,6 +125,7 @@ extern char sizeof_long_long_must_be_8[sizeof(long long) == 8 ? 1 : -1]; #error "This line should be impossible to reach" # endif # endif +# define HOST_WIDEST_INT_PRINT HOST_LONG_LONG_FORMAT # define HOST_WIDEST_INT_PRINT_DEC "%" HOST_LONG_LONG_FORMAT "d" # define HOST_WIDEST_INT_PRINT_DEC_C "%" HOST_LONG_LONG_FORMAT "dLL" # define HOST_WIDEST_INT_PRINT_UNSIGNED "%" HOST_LONG_LONG_FORMAT "u" @@ -128,7 +138,7 @@ extern char sizeof_long_long_must_be_8[sizeof(long long) == 8 ? 1 : -1]; efficiently in hardware. (That is, the widest integer type that fits in a hardware register.) Normally this is "long" but on some hosts it should be "long long" or "__int64". This is no convenient way to - autodect this, so such systems must set a flag in config.host; see there + autodetect this, so such systems must set a flag in config.host; see there for details. */ #ifdef USE_LONG_LONG_FOR_WIDEST_FAST_INT @@ -139,7 +149,7 @@ extern char sizeof_long_long_must_be_8[sizeof(long long) == 8 ? 1 : -1]; # define HOST_WIDEST_FAST_INT __int64 # define HOST_BITS_PER_WIDEST_FAST_INT HOST_BITS_PER___INT64 # else -# error "Your host said it wantted to use long long or __int64 but neither" +# error "Your host said it wanted to use long long or __int64 but neither" # error "exist" # endif #else