diff options
| author | mlugg <mlugg@mlugg.co.uk> | 2025-09-22 15:39:16 +0100 |
|---|---|---|
| committer | mlugg <mlugg@mlugg.co.uk> | 2025-09-30 13:44:56 +0100 |
| commit | dbda011ae67982949d59258a6ebd8f36080334fa (patch) | |
| tree | 103b35ea05814ef3de34543e46e31264974b452c /test/src/StackTrace.zig | |
| parent | 950a9d2a10d4a2430e1c26eb49f60bfc92adff77 (diff) | |
| download | zig-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.zig | 8 |
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}; |
