--- msgpack/pack_template.h 2022-05-23 13:55:10.000000000 +0800 +++ msgpack/pack_template.h 2024-06-08 02:53:32.000000000 +0800 @@ -776,7 +776,7 @@ if ((seconds >> 34) == 0) { /* seconds is unsigned and fits in 34 bits */ uint64_t data64 = ((uint64_t)nanoseconds << 34) | (uint64_t)seconds; - if ((data64 & 0xffffffff00000000L) == 0) { + if ((data64 & 0xffffffff00000000ULL) == 0) { /* no nanoseconds and seconds is 32bits or smaller. timestamp32. */ unsigned char buf[4]; uint32_t data32 = (uint32_t)data64;