fix invalid const expr eval for negative floats

This commit is contained in:
Andrew Kelley 2016-01-31 21:50:41 -07:00
parent 675de74412
commit 2e092e08f4
2 changed files with 3 additions and 3 deletions

View File

@ -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;

View File

@ -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");
}