diff --git a/src/translate_c.zig b/src/translate_c.zig index 34655d3bb583c51d6ac593ec04528b30aa549d17..3656c1e24422e0f4d84d3d7e64b9ca2ae2501d63 100644 --- a/src/translate_c.zig +++ b/src/translate_c.zig @@ -4436,7 +4436,7 @@ fn parseCNumLit(c: *Context, m: *MacroCtx) ParseError!Node { switch (lit_bytes[1]) { '0'...'7' => { // Octal - lit_bytes = try std.fmt.allocPrint(c.arena, "0o{s}", .{lit_bytes}); + lit_bytes = try std.fmt.allocPrint(c.arena, "0o{s}", .{lit_bytes[1..]}); radix = "octal"; }, 'X' => { diff --git a/test/translate_c.zig b/test/translate_c.zig index 5785d073111d5118d99bf25722ab58ba8f60c273..e8054c87adae664b3a8014d5b4f1db15b9bd818e 100644 --- a/test/translate_c.zig +++ b/test/translate_c.zig @@ -3410,6 +3410,6 @@ pub fn addCases(cases: *tests.TranslateCContext) void { \\pub const MAY_NEED_PROMOTION_2 = @import("std").meta.promoteIntLiteral(c_long, 307230723072, .decimal); \\pub const MAY_NEED_PROMOTION_3 = @import("std").meta.promoteIntLiteral(c_ulong, 819281928192, .decimal); \\pub const MAY_NEED_PROMOTION_HEX = @import("std").meta.promoteIntLiteral(c_int, 0x80000000, .hexadecimal); - \\pub const MAY_NEED_PROMOTION_OCT = @import("std").meta.promoteIntLiteral(c_int, 0o020000000000, .octal); + \\pub const MAY_NEED_PROMOTION_OCT = @import("std").meta.promoteIntLiteral(c_int, 0o20000000000, .octal); }); }