Reviewers: Lasse Reichstein, Description: Use our own macros for 64-bit constants.
Please review this at http://codereview.chromium.org/109017 Affected files: M src/globals.h Index: src/globals.h diff --git a/src/globals.h b/src/globals.h index 71bb78e3552a0f4cc871a136f1835956fdb3d20e..6436d9d6e4600c4c2e5197cabe5042bbc97038d8 100644 --- a/src/globals.h +++ b/src/globals.h @@ -50,10 +50,15 @@ typedef unsigned int __my_bool__; typedef uint8_t byte; typedef byte* Address; -// Define macros for writing 64-bit constants and pointer-size constants. +// Define our own macros for writing 64-bit constants. This is less fragile +// than defining __STDC_CONSTANT_MACROS before including <stdint.h>, and it +// works on compilers that don't have it (like MSVC). #ifdef _MSC_VER -#define UINT64_C(x) (x ## UI64) -#define INT64_C(x) (x ## I64) +#define V8_UINT64_C(x) (x ## UI64) +#define V8_INT64_C(x) (x ## I64) +#else +#define V8_UINT64_C(x) (x ## ULL) +#define V8_INT64_C(x) (x ## LL) #endif // Code-point values in Unicode 4.0 are 21 bits wide. @@ -120,11 +125,11 @@ const int kBitsPerInt = kIntSize * kBitsPerByte; // Should be a recognizable hex value tagged as a heap object pointer. #ifdef V8_ARCH_X64 const Address kZapValue = - reinterpret_cast<Address>(UINT64_C(0xdeadbeedbeadbeed)); + reinterpret_cast<Address>(V8_UINT64_C(0xdeadbeedbeadbeed)); const Address kHandleZapValue = - reinterpret_cast<Address>(UINT64_C(0x1baddead0baddead)); + reinterpret_cast<Address>(V8_UINT64_C(0x1baddead0baddead)); const Address kFromSpaceZapValue = - reinterpret_cast<Address>(UINT64_C(0x1beefdad0beefdad)); + reinterpret_cast<Address>(V8_UINT64_C(0x1beefdad0beefdad)); #else const Address kZapValue = reinterpret_cast<Address>(0xdeadbeed); const Address kHandleZapValue = reinterpret_cast<Address>(0xbaddead); --~--~---------~--~----~------------~-------~--~----~ v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev -~----------~----~----~----~------~----~------~--~---
