| Index: src/checks.h
|
| ===================================================================
|
| --- src/checks.h (revision 3015)
|
| +++ src/checks.h (working copy)
|
| @@ -80,17 +80,18 @@
|
| }
|
| }
|
|
|
| -#if !V8_HOST_ARCH_64_BIT
|
| -// Helper function used by the CHECK_EQ function when given int64_t
|
| -// arguments. Should not be called directly.
|
| -static inline void CheckEqualsHelper(const char* file, int line,
|
| - const char* expected_source,
|
| - int64_t expected,
|
| - const char* value_source,
|
| - int64_t value) {
|
| +// Helper function used by the CHECK_INT64_EQ function when given int64_t
|
| +// arguments. Should not be called directly. We do not overload CHECK_EQ
|
| +// with both 32-bit and 64-bit integers, because it causes ambiguity
|
| +// with operands of mixed sizes.
|
| +static inline void CheckInt64EqualsHelper(const char* file, int line,
|
| + const char* expected_source,
|
| + int64_t expected,
|
| + const char* value_source,
|
| + int64_t value) {
|
| if (expected != value) {
|
| - // Sorry, printing int64_t in a fanky hex way,
|
| - // that's our mother tongue after all :)
|
| + // Print int64_t values in hex, as two int32s,
|
| + // to avoid platform-dependencies.
|
| V8_Fatal(file, line,
|
| "CHECK_EQ(%s, %s) failed\n#"
|
| " Expected: 0x%08x%08x\n# Found: 0x%08x%08x",
|
| @@ -99,7 +100,6 @@
|
| uint32_t(value >> 32), uint32_t(value));
|
| }
|
| }
|
| -#endif
|
|
|
|
|
| // Helper function used by the CHECK_NE function when given int
|
| @@ -233,7 +233,10 @@
|
| #define CHECK_GT(a, b) CHECK((a) > (b))
|
| #define CHECK_GE(a, b) CHECK((a) >= (b))
|
|
|
| +#define CHECK_INT64_EQ(expected, value) CheckInt64EqualsHelper(__FILE__, \
|
| + __LINE__, #expected, expected, #value, value)
|
|
|
| +
|
| // This is inspired by the static assertion facility in boost. This
|
| // is pretty magical. If it causes you trouble on a platform you may
|
| // find a fix in the boost code.
|
|
|