From ac7217e1f5ff15a6fc8248b9c1c651b318f472ad Mon Sep 17 00:00:00 2001 From: Veikka Tuominen Date: Wed, 17 Mar 2021 11:32:11 +0200 Subject: translate-c: preserve zero fractional part in float literals --- src/translate_c.zig | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') 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); } -- cgit v1.2.3