aboutsummaryrefslogtreecommitdiff
path: root/test/src/StackTrace.zig
diff options
context:
space:
mode:
authormlugg <mlugg@mlugg.co.uk>2025-09-22 15:39:16 +0100
committermlugg <mlugg@mlugg.co.uk>2025-09-30 13:44:56 +0100
commitdbda011ae67982949d59258a6ebd8f36080334fa (patch)
tree103b35ea05814ef3de34543e46e31264974b452c /test/src/StackTrace.zig
parent950a9d2a10d4a2430e1c26eb49f60bfc92adff77 (diff)
downloadzig-dbda011ae67982949d59258a6ebd8f36080334fa.tar.gz
zig-dbda011ae67982949d59258a6ebd8f36080334fa.zip
std.debug.SelfInfo: mark ARM unwinding as unsupported
We need to parse the `.ARM.exidx` section to be able to reliably unwind the stack on ARM.
Diffstat (limited to 'test/src/StackTrace.zig')
-rw-r--r--test/src/StackTrace.zig8
1 files changed, 6 insertions, 2 deletions
diff --git a/test/src/StackTrace.zig b/test/src/StackTrace.zig
index 5735d89ade..3d35a4f935 100644
--- a/test/src/StackTrace.zig
+++ b/test/src/StackTrace.zig
@@ -62,8 +62,12 @@ fn addCaseTarget(
// On aarch64-macos, FP unwinding is blessed by Apple to always be reliable, and std.debug knows this.
const fp_unwind_is_safe = target.result.cpu.arch == .aarch64 and target.result.os.tag.isDarwin();
- // On x86-windows, only FP unwinding is available.
- const supports_unwind_tables = target.result.os.tag != .windows or target.result.cpu.arch != .x86;
+ const supports_unwind_tables = switch (target.result.os.tag) {
+ // x86-windows just has no way to do stack unwinding other then using frame pointers.
+ .windows => target.result.cpu.arch != .x86,
+ // We do not yet implement support for the AArch32 exception table section `.ARM.exidx`.
+ else => !target.result.cpu.arch.isArm(),
+ };
const use_llvm_vals: []const bool = if (both_backends) &.{ true, false } else &.{true};
const pie_vals: []const ?bool = if (both_pie) &.{ true, false } else &.{null};