aboutsummaryrefslogtreecommitdiff
path: root/lib/std
diff options
context:
space:
mode:
Diffstat (limited to 'lib/std')
-rw-r--r--lib/std/builtin.zig11
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/std/builtin.zig b/lib/std/builtin.zig
index d352ac29dc..a8069fa490 100644
--- a/lib/std/builtin.zig
+++ b/lib/std/builtin.zig
@@ -846,5 +846,16 @@ pub fn default_panic(msg: []const u8, error_return_trace: ?*StackTrace) noreturn
}
}
+pub noinline fn returnError(maybe_st: ?*StackTrace) void {
+ @setCold(true);
+ const st = maybe_st orelse return;
+ addErrRetTraceAddr(st, @returnAddress());
+}
+
+pub inline fn addErrRetTraceAddr(st: *StackTrace, addr: usize) void {
+ st.instruction_addresses[st.index & (st.instruction_addresses.len - 1)] = addr;
+ st.index +%= 1;
+}
+
const std = @import("std.zig");
const root = @import("root");