aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2005-08-23 18:52:31 +0000
committerJoseph Myers <joseph@codesourcery.com>2005-08-23 18:52:31 +0000
commitb07e1e8928203e8854b9f91c1eb211f304b797cc (patch)
treeecaa16cf3a76f817d15fc4d60c642fe4a6a2ede2
parent60921acfb454b4a7549970d3dd07d347d3ec6af8 (diff)
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. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/csl-3_4_3-linux-branch@103408 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog.csl9
-rw-r--r--gcc/config/i386/xm-mingw32.h4
-rw-r--r--gcc/hwint.h22
3 files changed, 28 insertions, 7 deletions
diff --git a/gcc/ChangeLog.csl b/gcc/ChangeLog.csl
index 48357d2fb63..1fe9a1425f3 100644
--- a/gcc/ChangeLog.csl
+++ b/gcc/ChangeLog.csl
@@ -1,3 +1,12 @@
+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.
+
2005-08-16 Joseph Myers <joseph@codesourcery.com>
* config/arm/wrs-linux.h (CC1_SPEC, SUBTARGET_EXTRA_ASM_SPEC,
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/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 */