From 1c22cb5e515548b22ccb260f4451edc119151584 Mon Sep 17 00:00:00 2001 From: Shawn Landden Date: Mon, 4 Nov 2019 17:41:45 -0800 Subject: [PATCH] fix noreturn function that may return. we do not want undefined behavior here in --release-fast and --release-small modes --- lib/std/special/c.zig | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/std/special/c.zig b/lib/std/special/c.zig index a9fd9857ff..473d2d4e33 100644 --- a/lib/std/special/c.zig +++ b/lib/std/special/c.zig @@ -82,9 +82,11 @@ pub fn panic(msg: []const u8, error_return_trace: ?*builtin.StackTrace) noreturn if (builtin.is_test) { @setCold(true); std.debug.panic("{}", msg); - } else { - unreachable; } + if (builtin.os != .freestanding) { + std.os.abort(); + } + while (true) {} } export fn memset(dest: ?[*]u8, c: u8, n: usize) ?[*]u8 {