diff --git a/src/Sema.zig b/src/Sema.zig index 1429f8ca71..68cca08b95 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -12417,7 +12417,8 @@ fn zirPtrType(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air const tracy = trace(@src()); defer tracy.end(); - const src: LazySrcLoc = .unneeded; + // TODO better source location + const src: LazySrcLoc = sema.src; const elem_ty_src: LazySrcLoc = .unneeded; const inst_data = sema.code.instructions.items(.data)[inst].ptr_type; const extra = sema.code.extraData(Zir.Inst.PtrType, inst_data.payload_index); diff --git a/src/link/MachO.zig b/src/link/MachO.zig index d359a3fd5d..fa1ba2835a 100644 --- a/src/link/MachO.zig +++ b/src/link/MachO.zig @@ -1317,6 +1317,9 @@ pub fn parseDylib(self: *MachO, path: []const u8, opts: DylibCreateOpts) ParseDy error.EndOfStream, error.NotDylib => { try file.seekTo(0); + // TODO https://github.com/ziglang/zig/issues/11367 + if (@import("builtin").zig_backend != .stage1) return error.Unexpected; + var lib_stub = LibStub.loadFromFile(self.base.allocator, file) catch { dylib.deinit(self.base.allocator); return false; @@ -5747,7 +5750,6 @@ fn populateLazyBindOffsetsInStubHelper(self: *MachO, buffer: []const u8) !void { while (true) { const inst = reader.readByte() catch |err| switch (err) { error.EndOfStream => break, - else => return err, }; const opcode: u8 = inst & macho.BIND_OPCODE_MASK; @@ -5875,7 +5877,7 @@ fn writeFunctionStarts(self: *MachO) !void { mem.set(u8, buffer, 0); var stream = std.io.fixedBufferStream(buffer); - var writer = stream.writer(); + const writer = stream.writer(); for (offsets.items) |offset| { try std.leb.writeULEB128(writer, offset); @@ -6236,7 +6238,8 @@ fn writeLoadCommands(self: *MachO) !void { var buffer = try self.base.allocator.alloc(u8, sizeofcmds); defer self.base.allocator.free(buffer); - var writer = std.io.fixedBufferStream(buffer).writer(); + var fib = std.io.fixedBufferStream(buffer); + const writer = fib.writer(); for (self.load_commands.items) |lc| { try lc.write(writer); } @@ -6416,7 +6419,7 @@ fn snapshotState(self: *MachO) !void { error.Unseekable => try out_file.writer().writeByte('['), else => |e| return e, } - var writer = out_file.writer(); + const writer = out_file.writer(); var snapshot = Snapshot{ .timestamp = std.time.nanoTimestamp(), diff --git a/src/link/MachO/Archive.zig b/src/link/MachO/Archive.zig index 1ebb122423..e8d981b4ae 100644 --- a/src/link/MachO/Archive.zig +++ b/src/link/MachO/Archive.zig @@ -171,7 +171,6 @@ fn parseTableOfContents(self: *Archive, allocator: Allocator, reader: anytype) ! while (true) { const n_strx = symtab_reader.readIntLittle(u32) catch |err| switch (err) { error.EndOfStream => break, - else => |e| return e, }; const object_offset = try symtab_reader.readIntLittle(u32); diff --git a/src/link/MachO/DebugSymbols.zig b/src/link/MachO/DebugSymbols.zig index aa7a29fcd1..5fac857422 100644 --- a/src/link/MachO/DebugSymbols.zig +++ b/src/link/MachO/DebugSymbols.zig @@ -472,7 +472,8 @@ fn writeLoadCommands(self: *DebugSymbols, allocator: Allocator) !void { var buffer = try allocator.alloc(u8, sizeofcmds); defer allocator.free(buffer); - var writer = std.io.fixedBufferStream(buffer).writer(); + var fib = std.io.fixedBufferStream(buffer); + const writer = fib.writer(); for (self.load_commands.items) |lc| { try lc.write(writer); } diff --git a/src/link/MachO/Dylib.zig b/src/link/MachO/Dylib.zig index 7593593cbc..26bac50144 100644 --- a/src/link/MachO/Dylib.zig +++ b/src/link/MachO/Dylib.zig @@ -64,7 +64,7 @@ pub const Id = struct { }; } - pub fn deinit(id: *Id, allocator: Allocator) void { + pub fn deinit(id: Id, allocator: Allocator) void { allocator.free(id.name); } diff --git a/src/link/MachO/Object.zig b/src/link/MachO/Object.zig index 255d7053d4..c8ebb4b8b5 100644 --- a/src/link/MachO/Object.zig +++ b/src/link/MachO/Object.zig @@ -492,7 +492,8 @@ pub fn parseIntoAtoms(self: *Object, allocator: Allocator, macho_file: *MachO) ! mem.copy(u8, atom.code.items, code); } - try atom.parseRelocs(relocs, .{ + // TODO stage2 bug: @alignCast shouldn't be needed + try atom.parseRelocs(@alignCast(@alignOf(macho.relocation_info), relocs), .{ .base_addr = sect.addr, .allocator = allocator, .object = self,