std: Fix typo in sqrt implementation

The code initializes twice `t` instead of `t1`, leaving the latter
uninitialized. The problem manifested itself by corrupting the LSBs of
the result in unpredictable ways.
This commit is contained in:
LemonBoy 2021-04-11 21:27:39 +02:00
parent 8d94dc625b
commit 44f8ce690d
2 changed files with 2 additions and 2 deletions

View File

@ -874,7 +874,7 @@ export fn sqrt(x: f64) f64 {
r = sign;
while (r != 0) {
t = s1 +% r;
t1 = s1 +% r;
t = s0;
if (t < ix0 or (t == ix0 and t1 <= ix1)) {
s1 = t1 +% r;

View File

@ -60,6 +60,6 @@ test "bug 920 fixed" {
};
for (NormalDist1.f) |_, i| {
std.testing.expect(NormalDist1.f[i] == NormalDist.f[i]);
std.testing.expectEqual(NormalDist1.f[i], NormalDist.f[i]);
}
}