From fc100d7b3b27bd514dca4e02c160e5b96d4da648 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Thu, 9 Feb 2017 02:50:03 -0500 Subject: lots of miscellaneous things all in one big commit * add `@compileLog(...)` builtin function - Helps debug code running at compile time - See #240 * fix crash when there is an error on the start value of a slice * add implicit cast from int and float types to int and float literals if the value is known at compile time * make array concatenation work with slices in addition to arrays and c string literals * fix compile error message for something not having field access * fix crash when `@setDebugSafety()` was called from a function being evaluated at compile-time * fix compile-time evaluation of overflow math builtins. * avoid debug safety panic handler in builtin.o and compiler_rt.o since we use no debug safety in these modules anyway * add compiler_rt functions for division on ARM - Closes #254 * move default panic handler to std.debug so users can call it manually * std.io.printf supports a width in the format specifier --- std/panic.zig | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) (limited to 'std/panic.zig') diff --git a/std/panic.zig b/std/panic.zig index 593930a4af..5be47b0c6e 100644 --- a/std/panic.zig +++ b/std/panic.zig @@ -3,31 +3,10 @@ // If this file wants to import other files *by name*, support for that would // have to be added in the compiler. -var panicking = false; pub coldcc fn panic(message: []const u8) -> unreachable { if (@compileVar("os") == Os.freestanding) { while (true) {} } else { - const std = @import("std"); - const io = std.io; - const debug = std.debug; - const os = std.os; - - // TODO - // if (@atomicRmw(AtomicOp.XChg, &panicking, true, AtomicOrder.SeqCst)) { - if (panicking) { - // Panicked during a panic. - // TODO detect if a different thread caused the panic, because in that case - // we would want to return here instead of calling abort, so that the thread - // which first called panic can finish printing a stack trace. - os.abort(); - } else { - panicking = true; - } - - %%io.stderr.printf("{}\n", message); - %%debug.printStackTrace(); - - os.abort(); + @import("std").debug.panic(message); } } -- cgit v1.2.3