| author | |
| committer | |
| log | ef7282bab41fdc95c4aee973de2ba595ca8195d2 |
| tree | 949bef80a15e5bc9179416006084917239c8a539 |
| parent | 845a30624ffc8fab884e2b7000daddb7d49eb5ff |
6 files changed, 14 insertions(+), 9 deletions(-)
src/Sema.zig+2-1| ... | @@ -12417,7 +12417,8 @@ fn zirPtrType(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air | ... | @@ -12417,7 +12417,8 @@ fn zirPtrType(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air |
| 12417 | const tracy = trace(@src()); | 12417 | const tracy = trace(@src()); |
| 12418 | defer tracy.end(); | 12418 | defer tracy.end(); |
| 12419 | 12419 | ||
| 12420 | const src: LazySrcLoc = .unneeded; | 12420 | // TODO better source location |
| 12421 | const src: LazySrcLoc = sema.src; | ||
| 12421 | const elem_ty_src: LazySrcLoc = .unneeded; | 12422 | const elem_ty_src: LazySrcLoc = .unneeded; |
| 12422 | const inst_data = sema.code.instructions.items(.data)[inst].ptr_type; | 12423 | const inst_data = sema.code.instructions.items(.data)[inst].ptr_type; |
| 12423 | const extra = sema.code.extraData(Zir.Inst.PtrType, inst_data.payload_index); | 12424 | const extra = sema.code.extraData(Zir.Inst.PtrType, inst_data.payload_index); |
src/link/MachO.zig+7-4| ... | @@ -1317,6 +1317,9 @@ pub fn parseDylib(self: *MachO, path: []const u8, opts: DylibCreateOpts) ParseDy | ... | @@ -1317,6 +1317,9 @@ pub fn parseDylib(self: *MachO, path: []const u8, opts: DylibCreateOpts) ParseDy |
| 1317 | error.EndOfStream, error.NotDylib => { | 1317 | error.EndOfStream, error.NotDylib => { |
| 1318 | try file.seekTo(0); | 1318 | try file.seekTo(0); |
| 1319 | 1319 | ||
| 1320 | // TODO https://github.com/ziglang/zig/issues/11367 | ||
| 1321 | if (@import("builtin").zig_backend != .stage1) return error.Unexpected; | ||
| 1322 | |||
| 1320 | var lib_stub = LibStub.loadFromFile(self.base.allocator, file) catch { | 1323 | var lib_stub = LibStub.loadFromFile(self.base.allocator, file) catch { |
| 1321 | dylib.deinit(self.base.allocator); | 1324 | dylib.deinit(self.base.allocator); |
| 1322 | return false; | 1325 | return false; |
| ... | @@ -5747,7 +5750,6 @@ fn populateLazyBindOffsetsInStubHelper(self: *MachO, buffer: []const u8) !void { | ... | @@ -5747,7 +5750,6 @@ fn populateLazyBindOffsetsInStubHelper(self: *MachO, buffer: []const u8) !void { |
| 5747 | while (true) { | 5750 | while (true) { |
| 5748 | const inst = reader.readByte() catch |err| switch (err) { | 5751 | const inst = reader.readByte() catch |err| switch (err) { |
| 5749 | error.EndOfStream => break, | 5752 | error.EndOfStream => break, |
| 5750 | else => return err, | ||
| 5751 | }; | 5753 | }; |
| 5752 | const opcode: u8 = inst & macho.BIND_OPCODE_MASK; | 5754 | const opcode: u8 = inst & macho.BIND_OPCODE_MASK; |
| 5753 | 5755 | ||
| ... | @@ -5875,7 +5877,7 @@ fn writeFunctionStarts(self: *MachO) !void { | ... | @@ -5875,7 +5877,7 @@ fn writeFunctionStarts(self: *MachO) !void { |
| 5875 | mem.set(u8, buffer, 0); | 5877 | mem.set(u8, buffer, 0); |
| 5876 | 5878 | ||
| 5877 | var stream = std.io.fixedBufferStream(buffer); | 5879 | var stream = std.io.fixedBufferStream(buffer); |
| 5878 | var writer = stream.writer(); | 5880 | const writer = stream.writer(); |
| 5879 | 5881 | ||
| 5880 | for (offsets.items) |offset| { | 5882 | for (offsets.items) |offset| { |
| 5881 | try std.leb.writeULEB128(writer, offset); | 5883 | try std.leb.writeULEB128(writer, offset); |
| ... | @@ -6236,7 +6238,8 @@ fn writeLoadCommands(self: *MachO) !void { | ... | @@ -6236,7 +6238,8 @@ fn writeLoadCommands(self: *MachO) !void { |
| 6236 | 6238 | ||
| 6237 | var buffer = try self.base.allocator.alloc(u8, sizeofcmds); | 6239 | var buffer = try self.base.allocator.alloc(u8, sizeofcmds); |
| 6238 | defer self.base.allocator.free(buffer); | 6240 | defer self.base.allocator.free(buffer); |
| 6239 | var writer = std.io.fixedBufferStream(buffer).writer(); | 6241 | var fib = std.io.fixedBufferStream(buffer); |
| 6242 | const writer = fib.writer(); | ||
| 6240 | for (self.load_commands.items) |lc| { | 6243 | for (self.load_commands.items) |lc| { |
| 6241 | try lc.write(writer); | 6244 | try lc.write(writer); |
| 6242 | } | 6245 | } |
| ... | @@ -6416,7 +6419,7 @@ fn snapshotState(self: *MachO) !void { | ... | @@ -6416,7 +6419,7 @@ fn snapshotState(self: *MachO) !void { |
| 6416 | error.Unseekable => try out_file.writer().writeByte('['), | 6419 | error.Unseekable => try out_file.writer().writeByte('['), |
| 6417 | else => |e| return e, | 6420 | else => |e| return e, |
| 6418 | } | 6421 | } |
| 6419 | var writer = out_file.writer(); | 6422 | const writer = out_file.writer(); |
| 6420 | 6423 | ||
| 6421 | var snapshot = Snapshot{ | 6424 | var snapshot = Snapshot{ |
| 6422 | .timestamp = std.time.nanoTimestamp(), | 6425 | .timestamp = std.time.nanoTimestamp(), |
src/link/MachO/Archive.zig-1| ... | @@ -171,7 +171,6 @@ fn parseTableOfContents(self: *Archive, allocator: Allocator, reader: anytype) ! | ... | @@ -171,7 +171,6 @@ fn parseTableOfContents(self: *Archive, allocator: Allocator, reader: anytype) ! |
| 171 | while (true) { | 171 | while (true) { |
| 172 | const n_strx = symtab_reader.readIntLittle(u32) catch |err| switch (err) { | 172 | const n_strx = symtab_reader.readIntLittle(u32) catch |err| switch (err) { |
| 173 | error.EndOfStream => break, | 173 | error.EndOfStream => break, |
| 174 | else => |e| return e, | ||
| 175 | }; | 174 | }; |
| 176 | const object_offset = try symtab_reader.readIntLittle(u32); | 175 | const object_offset = try symtab_reader.readIntLittle(u32); |
| 177 | 176 |
src/link/MachO/DebugSymbols.zig+2-1| ... | @@ -472,7 +472,8 @@ fn writeLoadCommands(self: *DebugSymbols, allocator: Allocator) !void { | ... | @@ -472,7 +472,8 @@ fn writeLoadCommands(self: *DebugSymbols, allocator: Allocator) !void { |
| 472 | 472 | ||
| 473 | var buffer = try allocator.alloc(u8, sizeofcmds); | 473 | var buffer = try allocator.alloc(u8, sizeofcmds); |
| 474 | defer allocator.free(buffer); | 474 | defer allocator.free(buffer); |
| 475 | var writer = std.io.fixedBufferStream(buffer).writer(); | 475 | var fib = std.io.fixedBufferStream(buffer); |
| 476 | const writer = fib.writer(); | ||
| 476 | for (self.load_commands.items) |lc| { | 477 | for (self.load_commands.items) |lc| { |
| 477 | try lc.write(writer); | 478 | try lc.write(writer); |
| 478 | } | 479 | } |
src/link/MachO/Dylib.zig+1-1| ... | @@ -64,7 +64,7 @@ pub const Id = struct { | ... | @@ -64,7 +64,7 @@ pub const Id = struct { |
| 64 | }; | 64 | }; |
| 65 | } | 65 | } |
| 66 | 66 | ||
| 67 | pub fn deinit(id: *Id, allocator: Allocator) void { | 67 | pub fn deinit(id: Id, allocator: Allocator) void { |
| 68 | allocator.free(id.name); | 68 | allocator.free(id.name); |
| 69 | } | 69 | } |
| 70 | 70 |
src/link/MachO/Object.zig+2-1| ... | @@ -492,7 +492,8 @@ pub fn parseIntoAtoms(self: *Object, allocator: Allocator, macho_file: *MachO) ! | ... | @@ -492,7 +492,8 @@ pub fn parseIntoAtoms(self: *Object, allocator: Allocator, macho_file: *MachO) ! |
| 492 | mem.copy(u8, atom.code.items, code); | 492 | mem.copy(u8, atom.code.items, code); |
| 493 | } | 493 | } |
| 494 | 494 | ||
| 495 | try atom.parseRelocs(relocs, .{ | 495 | // TODO stage2 bug: @alignCast shouldn't be needed |
| 496 | try atom.parseRelocs(@alignCast(@alignOf(macho.relocation_info), relocs), .{ | ||
| 496 | .base_addr = sect.addr, | 497 | .base_addr = sect.addr, |
| 497 | .allocator = allocator, | 498 | .allocator = allocator, |
| 498 | .object = self, | 499 | .object = self, |