authorgravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2022-11-20 16:10:54+02:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2022-11-20 16:10:54+02:00
log44f8714dfb69fac2e8c7a6a35ad9f2abe7c4513a
treedebb1e5ca9660b73ad91bba735dcd70e362829aa
parent476b946802e8a5500ece44822c8f6d103a71bbb5

translate-c: cast unsuffixed floats to f64


2 files changed, 7 insertions(+), 9 deletions(-)

src/translate_c.zig+1-3
...@@ -5783,11 +5783,9 @@ fn parseCNumLit(c: *Context, m: *MacroCtx) ParseError!Node {...@@ -5783,11 +5783,9 @@ fn parseCNumLit(c: *Context, m: *MacroCtx) ParseError!Node {
5783 }5783 }
5784 }5784 }
57855785
5786 if (suffix == .none)
5787 return transCreateNodeNumber(c, lit_bytes, .float);
5788
5789 const type_node = try Tag.type.create(c.arena, switch (suffix) {5786 const type_node = try Tag.type.create(c.arena, switch (suffix) {
5790 .f => "f32",5787 .f => "f32",
5788 .none => "f64",
5791 .l => "c_longdouble",5789 .l => "c_longdouble",
5792 else => unreachable,5790 else => unreachable,
5793 });5791 });
test/translate_c.zig+6-6
...@@ -1216,9 +1216,9 @@ pub fn addCases(cases: *tests.TranslateCContext) void {...@@ -1216,9 +1216,9 @@ pub fn addCases(cases: *tests.TranslateCContext) void {
1216 , &[_][]const u8{1216 , &[_][]const u8{
1217 "pub const foo = @as(f32, 3.14);",1217 "pub const foo = @as(f32, 3.14);",
1218 "pub const bar = @as(c_longdouble, 16.0e-2);",1218 "pub const bar = @as(c_longdouble, 16.0e-2);",
1219 "pub const FOO = 0.12345;",1219 "pub const FOO = @as(f64, 0.12345);",
1220 "pub const BAR = 0.12345;",1220 "pub const BAR = @as(f64, 0.12345);",
1221 "pub const baz = 1e1;",1221 "pub const baz = @as(f64, 1e1);",
1222 "pub const BAZ = @as(f32, 42e-3);",1222 "pub const BAZ = @as(f32, 42e-3);",
1223 "pub const foobar = -@as(c_longdouble, 73.0);",1223 "pub const foobar = -@as(c_longdouble, 73.0);",
1224 });1224 });
...@@ -1230,10 +1230,10 @@ pub fn addCases(cases: *tests.TranslateCContext) void {...@@ -1230,10 +1230,10 @@ pub fn addCases(cases: *tests.TranslateCContext) void {
1230 \\#define BAZ -0x.0a5dp+121230 \\#define BAZ -0x.0a5dp+12
1231 \\#define FOOBAZ 0xfE.P-1l1231 \\#define FOOBAZ 0xfE.P-1l
1232 , &[_][]const u8{1232 , &[_][]const u8{
1233 "pub const FOO = 0xf7p38;",1233 "pub const FOO = @as(f64, 0xf7p38);",
1234 "pub const BAR = -@as(f32, 0x8F.BP5);",1234 "pub const BAR = -@as(f32, 0x8F.BP5);",
1235 "pub const FOOBAR = 0x0P+0;",1235 "pub const FOOBAR = @as(f64, 0x0P+0);",
1236 "pub const BAZ = -0x0.0a5dp+12;",1236 "pub const BAZ = -@as(f64, 0x0.0a5dp+12);",
1237 "pub const FOOBAZ = @as(c_longdouble, 0xfE.0P-1);",1237 "pub const FOOBAZ = @as(c_longdouble, 0xfE.0P-1);",
1238 });1238 });
12391239