From 01c1f415209f5085e09430cc6df182d7eb2245ee Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Fri, 22 Oct 2021 17:12:12 -0700 Subject: stage2: slice and alignment fixes * Fix backend using wrong union field of the slice instruction. * LLVM backend properly sets alignment on global variables. * Sema: add coercion for *T to *[1]T * Sema: pointers to Decls with explicit alignment now have alignment metadata in them. --- src/codegen.zig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/codegen.zig') diff --git a/src/codegen.zig b/src/codegen.zig index ac9eaeda2a..5f5ee1b549 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -1246,7 +1246,8 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { } fn airSlice(self: *Self, inst: Air.Inst.Index) !void { - const bin_op = self.air.instructions.items(.data)[inst].bin_op; + const ty_pl = self.air.instructions.items(.data)[inst].ty_pl; + const bin_op = self.air.extraData(Air.Bin, ty_pl.payload).data; const result: MCValue = if (self.liveness.isUnused(inst)) .dead else switch (arch) { else => return self.fail("TODO implement slice for {}", .{self.target.cpu.arch}), }; -- cgit v1.2.3