diff options
| author | Jakub Konka <kubkon@jakubkonka.com> | 2022-03-01 22:51:04 +0100 |
|---|---|---|
| committer | Jakub Konka <kubkon@jakubkonka.com> | 2022-03-01 22:51:04 +0100 |
| commit | 836f007c22e50557dde46c8f766e1150c25271b3 (patch) | |
| tree | 5c48f12bf4ffcdf5550802760a86eedf3e9276b9 /src/codegen.zig | |
| parent | e8eb9778cccd2f2d23027d9e0d73d7053bf92efe (diff) | |
| download | zig-836f007c22e50557dde46c8f766e1150c25271b3.tar.gz zig-836f007c22e50557dde46c8f766e1150c25271b3.zip | |
codegen: ensure we descend on nested field_ptrs when lowering
Diffstat (limited to 'src/codegen.zig')
| -rw-r--r-- | src/codegen.zig | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/codegen.zig b/src/codegen.zig index fbc8bd9b3a..6220970003 100644 --- a/src/codegen.zig +++ b/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, |
