From 7fe13f4a86c04c25f95b237452b90e9ab3103d1f Mon Sep 17 00:00:00 2001 From: LemonBoy Date: Fri, 20 Dec 2019 13:58:19 +0100 Subject: [PATCH] Pointer alignment fixes for the stdlib --- lib/std/debug.zig | 4 ++-- lib/std/event/fs.zig | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/std/debug.zig b/lib/std/debug.zig index 94f81908da..dfdaca6d3f 100644 --- a/lib/std/debug.zig +++ b/lib/std/debug.zig @@ -1084,7 +1084,7 @@ fn openSelfDebugInfoMacOs(allocator: *mem.Allocator) !DebugInfo { std.macho.LC_SYMTAB => break @ptrCast(*std.macho.symtab_command, ptr), else => {}, } - ptr += lc.cmdsize; // TODO https://github.com/ziglang/zig/issues/1403 + ptr = @alignCast(@alignOf(std.macho.load_command), ptr + lc.cmdsize); } else { return error.MissingDebugInfo; }; @@ -2129,7 +2129,7 @@ fn getLineNumberInfoMacOs(di: *DebugInfo, symbol: MachoSymbol, target_address: u std.macho.LC_SEGMENT_64 => break @ptrCast(*const std.macho.segment_command_64, @alignCast(@alignOf(std.macho.segment_command_64), ptr)), else => {}, } - ptr += lc.cmdsize; // TODO https://github.com/ziglang/zig/issues/1403 + ptr = @alignCast(@alignOf(std.macho.load_command), ptr + lc.cmdsize); } else { return error.MissingDebugInfo; }; diff --git a/lib/std/event/fs.zig b/lib/std/event/fs.zig index 5986f07ad3..ce88ac4dc4 100644 --- a/lib/std/event/fs.zig +++ b/lib/std/event/fs.zig @@ -1263,7 +1263,7 @@ pub fn Watch(comptime V: type) type { var ptr = event_buf[0..].ptr; const end_ptr = ptr + event_buf.len; var ev: *os.linux.inotify_event = undefined; - while (@ptrToInt(ptr) < @ptrToInt(end_ptr)) : (ptr += @sizeOf(os.linux.inotify_event) + ev.len) { + while (@ptrToInt(ptr) < @ptrToInt(end_ptr)) { ev = @ptrCast(*os.linux.inotify_event, ptr); if (ev.mask & os.linux.IN_CLOSE_WRITE == os.linux.IN_CLOSE_WRITE) { const basename_ptr = ptr + @sizeOf(os.linux.inotify_event); @@ -1287,6 +1287,8 @@ pub fn Watch(comptime V: type) type { }); } } + + ptr = @alignCast(@alignOf(os.linux.inotify_event), ptr + @sizeOf(os.linux.inotify_event) + ev.len); } }, os.linux.EINTR => continue,