From 6ad510d83271a2b8452a645bfe128b1019aca165 Mon Sep 17 00:00:00 2001 From: Veikka Tuominen Date: Fri, 15 Apr 2022 10:46:19 +0300 Subject: [PATCH] update self hosted sources to language changes --- lib/std/os/linux/x86_64.zig | 7 ++++++- src/arch/sparcv9/CodeGen.zig | 6 +++--- src/link/Wasm/Object.zig | 3 ++- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/lib/std/os/linux/x86_64.zig b/lib/std/os/linux/x86_64.zig index 8913d10585b9e511a764a98cd6b63e54030f4b9c..fa099190942cab7ecfb1871585d5abbacbf3795e 100644 --- a/lib/std/os/linux/x86_64.zig +++ b/lib/std/os/linux/x86_64.zig @@ -100,7 +100,12 @@ pub fn syscall6( } /// This matches the libc clone function. -pub extern fn clone(func: fn (arg: usize) callconv(.C) u8, stack: usize, flags: usize, arg: usize, ptid: *i32, tls: usize, ctid: *i32) usize; +pub extern fn clone(func: CloneFn, stack: usize, flags: usize, arg: usize, ptid: *i32, tls: usize, ctid: *i32) usize; + +const CloneFn = switch (@import("builtin").zig_backend) { + .stage1 => fn (arg: usize) callconv(.C) u8, + else => *const fn (arg: usize) callconv(.C) u8, +}; pub const restore = restore_rt; diff --git a/src/arch/sparcv9/CodeGen.zig b/src/arch/sparcv9/CodeGen.zig index 7de035bc5ccce0812faf4f7aa1e1f3c9d82e9f76..71c41bc67d96223bd968e9d5ac226040d91c9125 100644 --- a/src/arch/sparcv9/CodeGen.zig +++ b/src/arch/sparcv9/CodeGen.zig @@ -624,9 +624,9 @@ fn airAsm(self: *Self, inst: Air.Inst.Index) !void { const is_volatile = (extra.data.flags & 0x80000000) != 0; const clobbers_len = @truncate(u31, extra.data.flags); var extra_i: usize = extra.end; - const outputs = @bitCast([]const Air.Inst.Ref, self.air.extra[extra_i .. extra_i + extra.data.outputs_len]); + const outputs = @ptrCast([]const Air.Inst.Ref, self.air.extra[extra_i .. extra_i + extra.data.outputs_len]); extra_i += outputs.len; - const inputs = @bitCast([]const Air.Inst.Ref, self.air.extra[extra_i .. extra_i + extra.data.inputs_len]); + const inputs = @ptrCast([]const Air.Inst.Ref, self.air.extra[extra_i .. extra_i + extra.data.inputs_len]); extra_i += inputs.len; const dead = !is_volatile and self.liveness.isUnused(inst); @@ -826,7 +826,7 @@ fn airCall(self: *Self, inst: Air.Inst.Index, modifier: std.builtin.CallOptions. const pl_op = self.air.instructions.items(.data)[inst].pl_op; const callee = pl_op.operand; const extra = self.air.extraData(Air.Call, pl_op.payload); - const args = @bitCast([]const Air.Inst.Ref, self.air.extra[extra.end .. extra.end + extra.data.args_len]); + const args = @ptrCast([]const Air.Inst.Ref, self.air.extra[extra.end .. extra.end + extra.data.args_len]); const ty = self.air.typeOf(callee); const fn_ty = switch (ty.zigTypeTag()) { .Fn => ty, diff --git a/src/link/Wasm/Object.zig b/src/link/Wasm/Object.zig index 9f8c04627537bd8687f9420a1e52e1c14645e14f..8abf78d8255f4e5e73dd7f85ec8b6486cce89299 100644 --- a/src/link/Wasm/Object.zig +++ b/src/link/Wasm/Object.zig @@ -312,7 +312,8 @@ fn Parser(comptime ReaderType: type) type { var section_index: u32 = 0; while (self.reader.reader().readByte()) |byte| : (section_index += 1) { const len = try readLeb(u32, self.reader.reader()); - const reader = std.io.limitedReader(self.reader.reader(), len).reader(); + var limited_reader = std.io.limitedReader(self.reader.reader(), len); + const reader = limited_reader.reader(); switch (@intToEnum(std.wasm.Section, byte)) { .custom => { const name_len = try readLeb(u32, reader); -- 2.54.0