commit 2e092e08f4fefa3fcd05484a755db5f5eef8e9cd (tree)
parent 675de74412e6006ee270fdd2a3b3e20727328af0
Author: Andrew Kelley <superjoe30@gmail.com>
Date: Sun, 31 Jan 2016 21:50:41 -0700
fix invalid const expr eval for negative floats
Diffstat:
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/bignum.cpp b/src/bignum.cpp
@@ -112,7 +112,7 @@ void bignum_negate(BigNum *dest, BigNum *op) {
dest->kind = op->kind;
if (dest->kind == BigNumKindFloat) {
- dest->data.x_float = -dest->data.x_float;
+ dest->data.x_float = -op->data.x_float;
} else {
dest->data.x_uint = op->data.x_uint;
dest->is_negative = !op->is_negative;
diff --git a/test/run_tests.cpp b/test/run_tests.cpp
@@ -1497,10 +1497,10 @@ export fn main(argc: c_int, argv: &&u8) -> c_int {
const x: f64 = small;
const y = i32(x);
const z = f64(y);
- printf(c"%.2f\n%d\n%.2f\n", x, y, z);
+ printf(c"%.2f\n%d\n%.2f\n%.2f\n", x, y, z, f64(-0.4));
return 0;
}
- )SOURCE", "3.25\n3\n3.00\n");
+ )SOURCE", "3.25\n3\n3.00\n-0.40\n");
}