diff --git a/include/msgpack/pack.hpp b/include/msgpack/pack.hpp index 3f4c12db..0520ef15 100644 --- a/include/msgpack/pack.hpp +++ b/include/msgpack/pack.hpp @@ -608,7 +608,10 @@ inline packer& packer::pack_double(double d) mem.f = d; char buf[9]; buf[0] = static_cast(0xcbu); -#if defined(__arm__) && !(__ARM_EABI__) // arm-oabi + +#if defined(TARGET_OS_IPHONE) + // ok +#elif defined(__arm__) && !(__ARM_EABI__) // arm-oabi // https://github.com/msgpack/msgpack-perl/pull/1 mem.i = (mem.i & 0xFFFFFFFFUL) << 32UL | (mem.i >> 32UL); #endif diff --git a/include/msgpack/pack_template.h b/include/msgpack/pack_template.h index c417cd34..4041d1ce 100644 --- a/include/msgpack/pack_template.h +++ b/include/msgpack/pack_template.h @@ -669,7 +669,9 @@ msgpack_pack_inline_func(_double)(msgpack_pack_user x, double d) union { double f; uint64_t i; } mem; mem.f = d; buf[0] = 0xcb; -#if defined(__arm__) && !(__ARM_EABI__) // arm-oabi +#if defined(TARGET_OS_IPHONE) + // ok +#elif defined(__arm__) && !(__ARM_EABI__) // arm-oabi // https://github.com/msgpack/msgpack-perl/pull/1 mem.i = (mem.i & 0xFFFFFFFFUL) << 32UL | (mem.i >> 32UL); #endif diff --git a/include/msgpack/unpack.hpp b/include/msgpack/unpack.hpp index af55f28d..1b867327 100644 --- a/include/msgpack/unpack.hpp +++ b/include/msgpack/unpack.hpp @@ -721,7 +721,9 @@ inline int context::execute(const char* data, std::size_t len, std::size_t& off) case MSGPACK_CS_DOUBLE: { union { uint64_t i; double f; } mem; load(mem.i, n); -#if defined(__arm__) && !(__ARM_EABI__) // arm-oabi +#if defined(TARGET_OS_IPHONE) + // ok +#elif defined(__arm__) && !(__ARM_EABI__) // arm-oabi // https://github.com/msgpack/msgpack-perl/pull/1 mem.i = (mem.i & 0xFFFFFFFFUL) << 32UL | (mem.i >> 32UL); #endif diff --git a/include/msgpack/unpack_template.h b/include/msgpack/unpack_template.h index 9bf389e5..a88fb0a4 100644 --- a/include/msgpack/unpack_template.h +++ b/include/msgpack/unpack_template.h @@ -270,7 +270,9 @@ msgpack_unpack_func(int, _execute)(msgpack_unpack_struct(_context)* ctx, const c case MSGPACK_CS_DOUBLE: { union { uint64_t i; double f; } mem; _msgpack_load64(uint64_t, n, &mem.i); -#if defined(__arm__) && !(__ARM_EABI__) // arm-oabi +#if defined(TARGET_OS_IPHONE) + // ok +#elif defined(__arm__) && !(__ARM_EABI__) // arm-oabi // https://github.com/msgpack/msgpack-perl/pull/1 mem.i = (mem.i & 0xFFFFFFFFUL) << 32UL | (mem.i >> 32UL); #endif