zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 746f65f8b3ce11d67d8fd392aea8bc05a24adae6 (tree)
parent 93cf9560b13619159efb3ca12eeeb13d6031ad85
Author: Michael Dusan <michael.dusan@gmail.com>
Date:   Mon, 12 Apr 2021 06:10:02 -0400

dwarf: fix LineNumberProgram check

- tolerate out-of-order DW_AT_ranges

closes #8421

Diffstat:
Mlib/std/dwarf.zig | 2+-
Mtest/stack_traces.zig | 15---------------
2 files changed, 1 insertion(+), 16 deletions(-)

diff --git a/lib/std/dwarf.zig b/lib/std/dwarf.zig @@ -208,7 +208,7 @@ const LineNumberProgram = struct { } pub fn checkLineMatch(self: *LineNumberProgram) !?debug.LineInfo { - if (self.target_address >= self.prev_address and self.target_address < self.address) { + if (self.prev_address > 0 and self.target_address >= self.prev_address and self.target_address < self.address) { const file_entry = if (self.prev_file == 0) { return error.MissingDebugInfo; } else if (self.prev_file - 1 >= self.file_entries.items.len) { diff --git a/test/stack_traces.zig b/test/stack_traces.zig @@ -20,11 +20,6 @@ pub fn addCases(cases: *tests.StackTracesContext) void { , }, .ReleaseSafe = .{ - .exclude = struct { - pub fn exclude() bool { - return if (std.builtin.object_format == .elf) true else false; - } - }, .exclude_os = .{ .windows, // segfault }, @@ -74,11 +69,6 @@ pub fn addCases(cases: *tests.StackTracesContext) void { , }, .ReleaseSafe = .{ - .exclude = struct { - pub fn exclude() bool { - return if (std.builtin.object_format == .elf) true else false; - } - }, .exclude_os = .{ .windows, // segfault }, @@ -145,11 +135,6 @@ pub fn addCases(cases: *tests.StackTracesContext) void { , }, .ReleaseSafe = .{ - .exclude = struct { - pub fn exclude() bool { - return if (std.builtin.object_format == .elf) true else false; - } - }, .exclude_os = .{ .windows, // segfault },