Index: src/base/macros.h |
diff --git a/src/base/macros.h b/src/base/macros.h |
index 3f09b2b9ce8af8939d64f85418a2e64a98387ad0..382c30bd221b11fb7f2f3c9801157a33ccc20e49 100644 |
--- a/src/base/macros.h |
+++ b/src/base/macros.h |
@@ -5,13 +5,8 @@ |
#ifndef V8_BASE_MACROS_H_ |
#define V8_BASE_MACROS_H_ |
-#include <stddef.h> |
-#include <stdint.h> |
- |
-#include <cstring> |
- |
-#include "src/base/build_config.h" |
#include "src/base/compiler-specific.h" |
+#include "src/base/format-macros.h" |
#include "src/base/logging.h" |
@@ -274,23 +269,27 @@ inline void USE(T) { } |
#define V8PRIdPTR V8_PTR_PREFIX "d" |
#define V8PRIuPTR V8_PTR_PREFIX "u" |
+// ptrdiff_t is 't' according to the standard, but MSVC uses 'I'. |
+#if V8_CC_MSVC |
+#define V8PRIxPTRDIFF "Ix" |
+#define V8PRIdPTRDIFF "Id" |
+#define V8PRIuPTRDIFF "Iu" |
+#else |
+#define V8PRIxPTRDIFF "tx" |
+#define V8PRIdPTRDIFF "td" |
+#define V8PRIuPTRDIFF "tu" |
+#endif |
+ |
// Fix for Mac OS X defining uintptr_t as "unsigned long": |
#if V8_OS_MACOSX |
#undef V8PRIxPTR |
#define V8PRIxPTR "lx" |
+#undef V8PRIdPTR |
+#define V8PRIdPTR "ld" |
#undef V8PRIuPTR |
#define V8PRIuPTR "lxu" |
#endif |
-// GCC on S390 31-bit expands 'size_t' to 'long unsigned int' |
-// instead of 'int', resulting in compilation errors with %d. |
-// The printf format specifier needs to be %zd instead. |
-#if V8_HOST_ARCH_S390 && !V8_HOST_ARCH_64_BIT |
-#define V8_SIZET_PREFIX "z" |
-#else |
-#define V8_SIZET_PREFIX "" |
-#endif |
- |
// The following macro works on both 32 and 64-bit platforms. |
// Usage: instead of writing 0x1234567890123456 |
// write V8_2PART_UINT64_C(0x12345678,90123456); |