<feed xmlns='http://www.w3.org/2005/Atom'>
<title>vcpkg/toolsrc/src/vcpkg-test/uint128.cpp, branch 2020.04</title>
<subtitle>Forked from https://github.com/microsoft/vcpkg</subtitle>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/vcpkg/'/>
<entry>
<title>[vcpkg] Correct UInt128 code 😇 (#10583)</title>
<updated>2020-04-09T21:11:53+00:00</updated>
<author>
<name>nicole mazzuca</name>
<email>mazzucan@outlook.com</email>
</author>
<published>2020-04-09T21:11:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/vcpkg/commit/?id=47a4913834d0f1e16a3340a8718c8bcdb8431f45'/>
<id>47a4913834d0f1e16a3340a8718c8bcdb8431f45</id>
<content type='text'>
* [vcpkg] Correct UInt128 code 😇

`UInt128::operator&lt;&lt;(x, y)` should clear the bottom 64 bits of `x` if
`y &gt;= 64`; however, we don't do this, and so we duplicate `x`'s bottom
bits into `x.top` instead of moving them. Similarly, we have the
opposite problem for `UInt128::operator&gt;&gt;`. This commit fixes these
latent bugs, which we weren't hitting because the thing we use them for
never actually shifts more than 64 bits.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* [vcpkg] Correct UInt128 code 😇

`UInt128::operator&lt;&lt;(x, y)` should clear the bottom 64 bits of `x` if
`y &gt;= 64`; however, we don't do this, and so we duplicate `x`'s bottom
bits into `x.top` instead of moving them. Similarly, we have the
opposite problem for `UInt128::operator&gt;&gt;`. This commit fixes these
latent bugs, which we weren't hitting because the thing we use them for
never actually shifts more than 64 bits.</pre>
</div>
</content>
</entry>
</feed>
