Commit 2e092e08f4

Andrew Kelley <superjoe30@gmail.com>
2016-02-01 05:50:41
fix invalid const expr eval for negative floats
1 parent 675de74
Changed files (2)
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;
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");
 }