zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit ee6e9b3c48acea20bae340e59a9406ff433de6e7 (tree)
parent b215241ef2153bf4b20f176923824e0e50d6da4c
Author: Jakub Konka <kubkon@jakubkonka.com>
Date:   Wed,  5 Jan 2022 23:40:53 +0100

stage2: fix airStructFieldPtr and airStructFieldVal

This finally fixes `zig test`.

Diffstat:
Msrc/arch/x86_64/CodeGen.zig | 4++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/arch/x86_64/CodeGen.zig b/src/arch/x86_64/CodeGen.zig @@ -1699,7 +1699,7 @@ fn structFieldPtr(self: *Self, inst: Air.Inst.Index, operand: Air.Inst.Ref, inde switch (mcv) { .ptr_stack_offset => |off| { - const ptr_stack_offset = off - struct_size + struct_field_offset + struct_field_size; + const ptr_stack_offset = off + struct_size - struct_field_offset - struct_field_size; break :result MCValue{ .ptr_stack_offset = ptr_stack_offset }; }, else => return self.fail("TODO implement codegen struct_field_ptr for {}", .{mcv}), @@ -1722,7 +1722,7 @@ fn airStructFieldVal(self: *Self, inst: Air.Inst.Index) !void { switch (mcv) { .stack_offset => |off| { - const stack_offset = off - struct_size + struct_field_offset + struct_field_size; + const stack_offset = off + struct_size - struct_field_offset - struct_field_size; break :result MCValue{ .stack_offset = stack_offset }; }, else => return self.fail("TODO implement codegen struct_field_val for {}", .{mcv}),