aboutsummaryrefslogtreecommitdiff
path: root/src/type.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/type.zig')
-rw-r--r--src/type.zig7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/type.zig b/src/type.zig
index 8e5eaf0ec7..b6f8db4ca1 100644
--- a/src/type.zig
+++ b/src/type.zig
@@ -5597,17 +5597,18 @@ pub const Type = extern union {
comptime assert(Type.packed_struct_layout_version == 2);
var bit_offset: u16 = undefined;
+ var elem_size_bits: u16 = undefined;
var running_bits: u16 = 0;
for (struct_obj.fields.values()) |f, i| {
if (!f.ty.hasRuntimeBits()) continue;
+ const field_bits = @intCast(u16, f.ty.bitSize(target));
if (i == field_index) {
bit_offset = running_bits;
+ elem_size_bits = field_bits;
}
- running_bits += @intCast(u16, f.ty.bitSize(target));
+ running_bits += field_bits;
}
- const host_size = (running_bits + 7) / 8;
- _ = host_size; // TODO big-endian
const byte_offset = bit_offset / 8;
return byte_offset;
}