diff --git a/lib/std/fmt.zig b/lib/std/fmt.zig index ab2cc1577d..ce90f67585 100644 --- a/lib/std/fmt.zig +++ b/lib/std/fmt.zig @@ -1181,13 +1181,16 @@ fn bufPrintIntToSlice(buf: []u8, value: anytype, base: u8, uppercase: bool, opti return buf[0..formatIntBuf(buf, value, base, uppercase, options)]; } -pub fn comptimePrint(comptime fmt: []const u8, args: anytype) *const [count(fmt, args)]u8 { - comptime var buf: [count(fmt, args)]u8 = undefined; +pub fn comptimePrint(comptime fmt: []const u8, args: anytype) *const [count(fmt, args):0]u8 { + comptime var buf: [count(fmt, args):0]u8 = undefined; _ = bufPrint(&buf, fmt, args) catch unreachable; + buf[buf.len] = 0; return &buf; } test "comptimePrint" { + @setEvalBranchQuota(2000); + std.testing.expectEqual(*const [3:0]u8, @TypeOf(comptime comptimePrint("{}", .{100}))); std.testing.expectEqualSlices(u8, "100", comptime comptimePrint("{}", .{100})); }