aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorVeikka Tuominen <git@vexu.eu>2021-03-17 11:32:11 +0200
committerVeikka Tuominen <git@vexu.eu>2021-03-18 22:46:00 +0200
commitac7217e1f5ff15a6fc8248b9c1c651b318f472ad (patch)
treecfff232bb0186eef06ebed715635d9a215445034 /src
parent7c6eb4161912f1c66acbdd341339e6cca8c410d8 (diff)
downloadzig-ac7217e1f5ff15a6fc8248b9c1c651b318f472ad.tar.gz
zig-ac7217e1f5ff15a6fc8248b9c1c651b318f472ad.zip
translate-c: preserve zero fractional part in float literals
Diffstat (limited to 'src')
-rw-r--r--src/translate_c.zig8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/translate_c.zig b/src/translate_c.zig
index 16881eef5d..8aabc30754 100644
--- a/src/translate_c.zig
+++ b/src/translate_c.zig
@@ -3248,11 +3248,11 @@ fn transFloatingLiteral(c: *Context, scope: *Scope, stmt: *const clang.FloatingL
var dbl = stmt.getValueAsApproximateDouble();
const is_negative = dbl < 0;
if (is_negative) dbl = -dbl;
- const str = try std.fmt.allocPrint(c.arena, "{d}", .{dbl});
- var node = if (dbl == std.math.floor(dbl))
- try Tag.integer_literal.create(c.arena, str)
+ const str = if (dbl == std.math.floor(dbl))
+ try std.fmt.allocPrint(c.arena, "{d}.0", .{dbl})
else
- try Tag.float_literal.create(c.arena, str);
+ try std.fmt.allocPrint(c.arena, "{d}", .{dbl});
+ var node = try Tag.float_literal.create(c.arena, str);
if (is_negative) node = try Tag.negate.create(c.arena, node);
return maybeSuppressResult(c, scope, used, node);
}