Commit 836f007c22

Jakub Konka <kubkon@jakubkonka.com>
2022-03-01 22:51:04
codegen: ensure we descend on nested field_ptrs when lowering
1 parent e8eb977
Changed files (2)
src
test
behavior
src/codegen.zig
@@ -339,6 +339,19 @@ pub fn generateSymbol(
                             .addend = (reloc_info.addend orelse 0) + addend,
                         });
                     },
+                    .field_ptr => {
+                        switch (try generateSymbol(bin_file, src_loc, .{
+                            .ty = typed_value.ty,
+                            .val = container_ptr,
+                        }, code, debug_output, reloc_info)) {
+                            .appended => {},
+                            .externally_managed => |external_slice| {
+                                code.appendSliceAssumeCapacity(external_slice);
+                            },
+                            .fail => |em| return Result{ .fail = em },
+                        }
+                        return Result{ .appended = {} };
+                    },
                     else => return Result{
                         .fail = try ErrorMsg.create(
                             bin_file.allocator,
test/behavior/struct.zig
@@ -780,7 +780,6 @@ test "packed struct with u0 field access" {
 
 test "access to global struct fields" {
     if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
-    if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
     if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
     if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
     if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO