From 6f17be063d37f5ecd9552479e65428a5c60d9152 Mon Sep 17 00:00:00 2001 From: r00ster91 Date: Thu, 7 Jul 2022 20:40:31 +0200 Subject: [PATCH] std.log: give friendly error to freestanding users --- lib/std/log.zig | 10 +++++----- test/standalone/issue_7030/main.zig | 12 ++++++++++++ 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/lib/std/log.zig b/lib/std/log.zig index 5d9e5242a8..4110fe6d8d 100644 --- a/lib/std/log.zig +++ b/lib/std/log.zig @@ -156,11 +156,11 @@ pub fn defaultLog( comptime format: []const u8, args: anytype, ) void { - if (builtin.os.tag == .freestanding) { - // On freestanding one must provide a log function; we do not have - // any I/O configured. - return; - } + if (builtin.os.tag == .freestanding) + @compileError( + \\freestanding targets do not have I/O configured; + \\please provide at least an empty `log` function declaration + ); const level_txt = comptime message_level.asText(); const prefix2 = if (scope == .default) ": " else "(" ++ @tagName(scope) ++ "): "; diff --git a/test/standalone/issue_7030/main.zig b/test/standalone/issue_7030/main.zig index d29869ff88..4cf79a7b31 100644 --- a/test/standalone/issue_7030/main.zig +++ b/test/standalone/issue_7030/main.zig @@ -1,5 +1,17 @@ const std = @import("std"); +pub fn log( + comptime message_level: std.log.Level, + comptime scope: @Type(.EnumLiteral), + comptime format: []const u8, + args: anytype, +) void { + _ = message_level; + _ = scope; + _ = format; + _ = args; +} + pub fn main() anyerror!void { std.log.info("All your codebase are belong to us.", .{}); }