Fix undefined behavior

This commit is contained in:
Howard Hinnant
2014-12-23 16:12:56 -05:00
committed by Nik Bougalis
parent 91ce7807b9
commit 7f5f73887d
3 changed files with 12 additions and 546 deletions

View File

@@ -204,10 +204,15 @@ public:
base_uint& operator= (std::uint64_t uHost)
{
*this = beast::zero;
union
{
unsigned u[2];
std::uint64_t ul;
};
// Put in least significant bits.
((std::uint64_t*) end ())[-1] = htobe64 (uHost);
ul = htobe64 (uHost);
pn[WIDTH-2] = u[0];
pn[WIDTH-1] = u[1];
return *this;
}