diff --git a/glm/detail/func_integer.inl b/glm/detail/func_integer.inl index 31eddf9b..6d204b40 100644 --- a/glm/detail/func_integer.inl +++ b/glm/detail/func_integer.inl @@ -248,10 +248,8 @@ namespace detail GLM_STATIC_ASSERT(sizeof(uint) == sizeof(uint32), "uint and uint32 size mismatch"); uint64 Value64 = static_cast(x) * static_cast(y); - uint32* PointerMSB = (reinterpret_cast(&Value64) + 1); - msb = *PointerMSB; - uint32* PointerLSB = (reinterpret_cast(&Value64) + 0); - lsb = *PointerLSB; + msb = Value64 >> 32; + lsb = Value64; } template class vecType> @@ -270,10 +268,8 @@ namespace detail GLM_STATIC_ASSERT(sizeof(int) == sizeof(int32), "int and int32 size mismatch"); int64 Value64 = static_cast(x) * static_cast(y); - int32* PointerMSB = (reinterpret_cast(&Value64) + 1); - msb = *PointerMSB; - int32* PointerLSB = (reinterpret_cast(&Value64)); - lsb = *PointerLSB; + msb = Value64 >> 32; + lsb = Value64; } template class vecType>