diff options
author | Mark Mitchell <mark@codesourcery.com> | 2005-08-23 14:37:52 +0000 |
---|---|---|
committer | Mark Mitchell <mark@codesourcery.com> | 2005-08-23 14:37:52 +0000 |
commit | b9659208f31254f7cc42408c67e2901dcedcf32a (patch) | |
tree | 5123e608087e7af262f52154e8be9f1aa1c244d9 | |
parent | 14ab9cda122e64e16ad1f1016046ca72ff9f081b (diff) |
* hwint.h (HOST_WIDE_INT_PRINT): Use HOST_LONG_LONG_FORMAT.
Backport:
2004-11-23 Mark Mitchell <mark@codesourcery.com>
* hwint.h (HOST_LONG_LONG_FORMAT): New macro. Use it throughout.
* config/i386/xm-mingw32.h (HOST_LONG_LONG_FORMAT): Define.
* doc/hostconfig.texi (HOST_LONG_LONG_FORMAT): Document.
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/csl-gxxpro-3_4-branch@103400 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | ChangeLog.csl | 10 | ||||
-rw-r--r-- | gcc/config/i386/xm-mingw32.h | 4 | ||||
-rw-r--r-- | gcc/doc/hostconfig.texi | 5 | ||||
-rw-r--r-- | gcc/hwint.h | 22 |
4 files changed, 34 insertions, 7 deletions
diff --git a/ChangeLog.csl b/ChangeLog.csl index e2445136d38..f478ed0b692 100644 --- a/ChangeLog.csl +++ b/ChangeLog.csl @@ -1,3 +1,13 @@ +2005-08-23 Mark Mitchell <mark@codesourcery.com> + + * hwint.h (HOST_WIDE_INT_PRINT): Use HOST_LONG_LONG_FORMAT. + + Backport: + 2004-11-23 Mark Mitchell <mark@codesourcery.com> + * hwint.h (HOST_LONG_LONG_FORMAT): New macro. Use it throughout. + * config/i386/xm-mingw32.h (HOST_LONG_LONG_FORMAT): Define. + * doc/hostconfig.texi (HOST_LONG_LONG_FORMAT): Document. + 2005-08-22 Mark Mitchell <mark@codesourcery.com> * configure.in (*-*-vxworks*): Add target-libstdc++-v3 to diff --git a/gcc/config/i386/xm-mingw32.h b/gcc/config/i386/xm-mingw32.h index 888196697be..702f14d3c57 100644 --- a/gcc/config/i386/xm-mingw32.h +++ b/gcc/config/i386/xm-mingw32.h @@ -27,3 +27,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA /* This is the name of the null device on windows. */ #define HOST_BIT_BUCKET "nul" + +/* MSVCRT does not support the "ll" format specifier for printing + "long long" values. Instead, we use "I64". */ +#define HOST_LONG_LONG_FORMAT "I64" diff --git a/gcc/doc/hostconfig.texi b/gcc/doc/hostconfig.texi index 5c38313efd2..3a00f8858b6 100644 --- a/gcc/doc/hostconfig.texi +++ b/gcc/doc/hostconfig.texi @@ -196,6 +196,11 @@ initialization when a compilation driver is being initialized. Define this macro if the host system has a small limit on the total size of an argument vector. This causes the driver to take more care not to pass unnecessary arguments to subprocesses. + +@item HOST_LONG_LONG_FORMAT +If defined, the string used to indicate an argument of type @code{long +long} to functions like @code{printf}. The default value is +@code{"ll"}. @end ftable In addition, if @command{configure} generates an incorrect definition of diff --git a/gcc/hwint.h b/gcc/hwint.h index 4fed004cbf6..40c1a31a7a8 100644 --- a/gcc/hwint.h +++ b/gcc/hwint.h @@ -15,6 +15,12 @@ #define HOST_BITS_PER_INT (CHAR_BIT * SIZEOF_INT) #define HOST_BITS_PER_LONG (CHAR_BIT * SIZEOF_LONG) +/* The string that should be inserted into a printf style format to + indicate a "long long" operand. */ +#ifndef HOST_LONG_LONG_FORMAT +#define HOST_LONG_LONG_FORMAT "ll" +#endif + /* If HAVE_LONG_LONG and SIZEOF_LONG_LONG aren't defined, but GCC_VERSION >= 3000, assume this is the second or later stage of a bootstrap, we do have long long, and it's 64 bits. (This is @@ -74,10 +80,11 @@ extern char sizeof_long_long_must_be_8[sizeof(long long) == 8 ? 1 : -1]; # define HOST_WIDE_INT_PRINT_DOUBLE_HEX "0x%lx%08lx" # 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 "0x%llx%016llx" +# define HOST_WIDE_INT_PRINT_DOUBLE_HEX \ + "0x%" HOST_LONG_LONG_FORMAT "x%016" HOST_LONG_LONG_FORMAT "x" #endif /* HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG */ #define HOST_WIDE_INT_PRINT_DEC "%" HOST_WIDE_INT_PRINT "d" @@ -109,11 +116,12 @@ 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_DEC "%lld" -# define HOST_WIDEST_INT_PRINT_DEC_C "%lldLL" -# define HOST_WIDEST_INT_PRINT_UNSIGNED "%llu" -# define HOST_WIDEST_INT_PRINT_HEX "0x%llx" -# define HOST_WIDEST_INT_PRINT_DOUBLE_HEX "0x%llx%016llx" +# 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" +# define HOST_WIDEST_INT_PRINT_HEX "0x%" HOST_LONG_LONG_FORMAT "x" +# define HOST_WIDEST_INT_PRINT_DOUBLE_HEX \ + "0x%" HOST_LONG_LONG_FORMAT "x%016" HOST_LONG_LONG_FORMAT "x" #endif #endif /* ! GCC_HWINT_H */ |