diff options
| author | Veikka Tuominen <git@vexu.eu> | 2022-11-20 16:10:54 +0200 |
|---|---|---|
| committer | Veikka Tuominen <git@vexu.eu> | 2022-11-20 16:10:54 +0200 |
| commit | 44f8714dfb69fac2e8c7a6a35ad9f2abe7c4513a (patch) | |
| tree | debb1e5ca9660b73ad91bba735dcd70e362829aa | |
| parent | 476b946802e8a5500ece44822c8f6d103a71bbb5 (diff) | |
| download | zig-44f8714dfb69fac2e8c7a6a35ad9f2abe7c4513a.tar.gz zig-44f8714dfb69fac2e8c7a6a35ad9f2abe7c4513a.zip | |
translate-c: cast unsuffixed floats to f64
| -rw-r--r-- | src/translate_c.zig | 4 | ||||
| -rw-r--r-- | test/translate_c.zig | 12 |
2 files changed, 7 insertions, 9 deletions
diff --git a/src/translate_c.zig b/src/translate_c.zig index 3fffdd65b1..7a4bd843a5 100644 --- a/src/translate_c.zig +++ b/src/translate_c.zig @@ -5783,11 +5783,9 @@ fn parseCNumLit(c: *Context, m: *MacroCtx) ParseError!Node { } } - if (suffix == .none) - return transCreateNodeNumber(c, lit_bytes, .float); - const type_node = try Tag.type.create(c.arena, switch (suffix) { .f => "f32", + .none => "f64", .l => "c_longdouble", else => unreachable, }); diff --git a/test/translate_c.zig b/test/translate_c.zig index c1be960edd..690b584d92 100644 --- a/test/translate_c.zig +++ b/test/translate_c.zig @@ -1216,9 +1216,9 @@ pub fn addCases(cases: *tests.TranslateCContext) void { , &[_][]const u8{ "pub const foo = @as(f32, 3.14);", "pub const bar = @as(c_longdouble, 16.0e-2);", - "pub const FOO = 0.12345;", - "pub const BAR = 0.12345;", - "pub const baz = 1e1;", + "pub const FOO = @as(f64, 0.12345);", + "pub const BAR = @as(f64, 0.12345);", + "pub const baz = @as(f64, 1e1);", "pub const BAZ = @as(f32, 42e-3);", "pub const foobar = -@as(c_longdouble, 73.0);", }); @@ -1230,10 +1230,10 @@ pub fn addCases(cases: *tests.TranslateCContext) void { \\#define BAZ -0x.0a5dp+12 \\#define FOOBAZ 0xfE.P-1l , &[_][]const u8{ - "pub const FOO = 0xf7p38;", + "pub const FOO = @as(f64, 0xf7p38);", "pub const BAR = -@as(f32, 0x8F.BP5);", - "pub const FOOBAR = 0x0P+0;", - "pub const BAZ = -0x0.0a5dp+12;", + "pub const FOOBAR = @as(f64, 0x0P+0);", + "pub const BAZ = -@as(f64, 0x0.0a5dp+12);", "pub const FOOBAZ = @as(c_longdouble, 0xfE.0P-1);", }); |
