diff --git a/include/marisa/base.h b/include/marisa/base.h index ffcdc5b..f8c0e1c 100644 --- a/include/marisa/base.h +++ b/include/marisa/base.h @@ -1,6 +1,7 @@ #ifndef MARISA_BASE_H_ #define MARISA_BASE_H_ +#include // Old Visual C++ does not provide stdint.h. #ifndef _MSC_VER #include @@ -28,14 +29,13 @@ typedef uint32_t marisa_uint32; typedef uint64_t marisa_uint64; #endif // _MSC_VER -#if defined(_WIN64) || defined(__amd64__) || defined(__x86_64__) || \ - defined(__ia64__) || defined(__ppc64__) || defined(__powerpc64__) || \ - defined(__sparc64__) || defined(__mips64__) || defined(__aarch64__) || \ - defined(__s390x__) +#if (ULONG_MAX == 0xffffffffffffffff) #define MARISA_WORD_SIZE 64 -#else // defined(_WIN64), etc. +#elif (ULONG_MAX == 0xffffffff) #define MARISA_WORD_SIZE 32 -#endif // defined(_WIN64), etc. +#else + #error Failed to detect MARISA_WORD_SIZE +#endif //#define MARISA_WORD_SIZE (sizeof(void *) * 8)