diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2023-05-05 19:13:43 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2023-06-10 20:42:29 -0700 |
| commit | 31aee50c1a96b7e72b42ee885636b27fbcac8eb4 (patch) | |
| tree | ddd17a80a48fa620a6d4cea9d8f6a970eb90845d /src/codegen.zig | |
| parent | 08e97639513f09e2797bd7afcdfdfecdad6c6fd8 (diff) | |
| download | zig-31aee50c1a96b7e72b42ee885636b27fbcac8eb4.tar.gz zig-31aee50c1a96b7e72b42ee885636b27fbcac8eb4.zip | |
InternPool: add a slice encoding
This uses the data field to reference its pointer field type, which
allows for efficient and infallible access of a slice type's pointer
type.
Diffstat (limited to 'src/codegen.zig')
| -rw-r--r-- | src/codegen.zig | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/codegen.zig b/src/codegen.zig index 25e8d892d8..5f5a3f66be 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -361,7 +361,7 @@ pub fn generateSymbol( // generate ptr var buf: Type.SlicePtrFieldTypeBuffer = undefined; - const slice_ptr_field_type = typed_value.ty.slicePtrFieldType(&buf); + const slice_ptr_field_type = typed_value.ty.slicePtrFieldType(&buf, mod); switch (try generateSymbol(bin_file, src_loc, .{ .ty = slice_ptr_field_type, .val = slice.ptr, @@ -851,7 +851,7 @@ fn lowerParentPtr( var buf: Type.SlicePtrFieldTypeBuffer = undefined; break :offset switch (field_ptr.field_index) { 0 => 0, - 1 => field_ptr.container_ty.slicePtrFieldType(&buf).abiSize(mod), + 1 => field_ptr.container_ty.slicePtrFieldType(&buf, mod).abiSize(mod), else => unreachable, }; }, @@ -951,7 +951,7 @@ fn lowerDeclRef( if (typed_value.ty.isSlice(mod)) { // generate ptr var buf: Type.SlicePtrFieldTypeBuffer = undefined; - const slice_ptr_field_type = typed_value.ty.slicePtrFieldType(&buf); + const slice_ptr_field_type = typed_value.ty.slicePtrFieldType(&buf, mod); switch (try generateSymbol(bin_file, src_loc, .{ .ty = slice_ptr_field_type, .val = typed_value.val, |
