diff --git a/storm/big/Ops.cpp b/storm/big/Ops.cpp index 01563e2..7f63ea6 100644 --- a/storm/big/Ops.cpp +++ b/storm/big/Ops.cpp @@ -147,12 +147,11 @@ uint32_t ExtractLowPartLargeSum(uint64_t& value, uint64_t add) { } uint32_t ExtractLowPartSx(uint64_t& value) { - auto low = static_cast(value); + uint32_t low = value & 0xFFFFFFFF; value >>= 32; if (value >= 0x80000000) { - reinterpret_cast(&value)[0] = value; - reinterpret_cast(&value)[1] = -1; + value |= 0xFFFFFFFFULL << 32; } return low;