Commit be6601c3 by Mark Mitchell Committed by Mark Mitchell

hwint.h (HOST_LONG_LONG_FORMAT): New macro.

	* 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.

From-SVN: r91136
parent 0aa06b18
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.
2004-11-24 Daniel Jacobowitz <dan@codesourcery.com> 2004-11-24 Daniel Jacobowitz <dan@codesourcery.com>
* config/i386/i386.c (override_options): Move * config/i386/i386.c (override_options): Move
......
...@@ -30,3 +30,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA ...@@ -30,3 +30,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
/* The st_ino field of struct stat is always 0. */ /* The st_ino field of struct stat is always 0. */
#define HOST_LACKS_INODE_NUMBERS #define HOST_LACKS_INODE_NUMBERS
/* MSVCRT does not support the "ll" format specifier for printing
"long long" values. Instead, we use "I64". */
#define HOST_LONG_LONG_FORMAT "I64"
...@@ -212,6 +212,11 @@ initialization when a compilation driver is being initialized. ...@@ -212,6 +212,11 @@ initialization when a compilation driver is being initialized.
Define this macro if the host system has a small limit on the total 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 size of an argument vector. This causes the driver to take more care
not to pass unnecessary arguments to subprocesses. 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 @end ftable
In addition, if @command{configure} generates an incorrect definition of In addition, if @command{configure} generates an incorrect definition of
......
...@@ -15,6 +15,12 @@ ...@@ -15,6 +15,12 @@
#define HOST_BITS_PER_INT (CHAR_BIT * SIZEOF_INT) #define HOST_BITS_PER_INT (CHAR_BIT * SIZEOF_INT)
#define HOST_BITS_PER_LONG (CHAR_BIT * SIZEOF_LONG) #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 /* 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 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 bootstrap, we do have long long, and it's 64 bits. (This is
...@@ -77,7 +83,8 @@ extern char sizeof_long_long_must_be_8[sizeof(long long) == 8 ? 1 : -1]; ...@@ -77,7 +83,8 @@ extern char sizeof_long_long_must_be_8[sizeof(long long) == 8 ? 1 : -1];
# define HOST_WIDE_INT_PRINT "ll" # define HOST_WIDE_INT_PRINT "ll"
# define HOST_WIDE_INT_PRINT_C "LL" # define HOST_WIDE_INT_PRINT_C "LL"
/* We can assume that 'long long' is at least 64 bits. */ /* 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 */ #endif /* HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG */
#define HOST_WIDE_INT_PRINT_DEC "%" HOST_WIDE_INT_PRINT "d" #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]; ...@@ -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" #error "This line should be impossible to reach"
# endif # endif
# endif # endif
# define HOST_WIDEST_INT_PRINT_DEC "%lld" # define HOST_WIDEST_INT_PRINT_DEC "%" HOST_LONG_LONG_FORMAT "d"
# define HOST_WIDEST_INT_PRINT_DEC_C "%lldLL" # define HOST_WIDEST_INT_PRINT_DEC_C "%" HOST_LONG_LONG_FORMAT "dLL"
# define HOST_WIDEST_INT_PRINT_UNSIGNED "%llu" # define HOST_WIDEST_INT_PRINT_UNSIGNED "%" HOST_LONG_LONG_FORMAT "u"
# define HOST_WIDEST_INT_PRINT_HEX "0x%llx" # define HOST_WIDEST_INT_PRINT_HEX "0x%" HOST_LONG_LONG_FORMAT "x"
# define HOST_WIDEST_INT_PRINT_DOUBLE_HEX "0x%llx%016llx" # define HOST_WIDEST_INT_PRINT_DOUBLE_HEX \
"0x%" HOST_LONG_LONG_FORMAT "x%016" HOST_LONG_LONG_FORMAT "x"
#endif #endif
/* Define HOST_WIDEST_FAST_INT to the widest integer type supported /* Define HOST_WIDEST_FAST_INT to the widest integer type supported
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment