Fixed aliasing warnings

This commit is contained in:
Christophe Riccio 2014-03-16 11:15:56 +01:00
parent 658d7e2788
commit 0b73091c7f

View File

@ -111,7 +111,7 @@ namespace glm
Borrow = x >= y ? static_cast<uint32>(0) : static_cast<uint32>(1); Borrow = x >= y ? static_cast<uint32>(0) : static_cast<uint32>(1);
if(x > y) if(x > y)
return static_cast<uint32>(static_cast<int64>(x) -static_cast<int64>(y)); return static_cast<uint32>(static_cast<int64>(x) - static_cast<int64>(y));
else else
return static_cast<uint32>((static_cast<int64>(1) << static_cast<int64>(32)) + static_cast<int64>(x) - static_cast<int64>(y)); return static_cast<uint32>((static_cast<int64>(1) << static_cast<int64>(32)) + static_cast<int64>(x) - static_cast<int64>(y));
} }
@ -173,7 +173,8 @@ namespace glm
uint64 Value64 = static_cast<uint64>(x) * static_cast<uint64>(y); uint64 Value64 = static_cast<uint64>(x) * static_cast<uint64>(y);
uint32* PointerMSB = (reinterpret_cast<uint32*>(&Value64) + 1); uint32* PointerMSB = (reinterpret_cast<uint32*>(&Value64) + 1);
msb = *PointerMSB; msb = *PointerMSB;
lsb = reinterpret_cast<uint32&>(Value64); uint32* PointerLSB = (reinterpret_cast<uint32*>(&Value64) + 0);
lsb = *PointerLSB;
} }
template <> template <>
@ -233,7 +234,8 @@ namespace glm
int64 Value64 = static_cast<int64>(x) * static_cast<int64>(y); int64 Value64 = static_cast<int64>(x) * static_cast<int64>(y);
int32* PointerMSB = (reinterpret_cast<int32*>(&Value64) + 1); int32* PointerMSB = (reinterpret_cast<int32*>(&Value64) + 1);
msb = *PointerMSB; msb = *PointerMSB;
lsb = reinterpret_cast<int32&>(Value64); int32* PointerLSB = (reinterpret_cast<int32*>(&Value64));
lsb = *PointerLSB;
} }
template <> template <>