aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorLemonBoy <thatlemon@gmail.com>2019-12-20 13:58:19 +0100
committerLemonBoy <thatlemon@gmail.com>2020-01-08 20:03:03 +0100
commit7fe13f4a86c04c25f95b237452b90e9ab3103d1f (patch)
treed7da0013d27008904e6a98de42abab79d85a6e78 /lib
parente134e6c994d6ecd76dc6ae1a24b8de29c4147eab (diff)
downloadzig-7fe13f4a86c04c25f95b237452b90e9ab3103d1f.tar.gz
zig-7fe13f4a86c04c25f95b237452b90e9ab3103d1f.zip
Pointer alignment fixes for the stdlib
Diffstat (limited to 'lib')
-rw-r--r--lib/std/debug.zig4
-rw-r--r--lib/std/event/fs.zig4
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,