Skip to content
5 changes: 3 additions & 2 deletions src/Air.zig
Original file line number Diff line number Diff line change
Expand Up @@ -1249,8 +1249,9 @@ pub const Inst = struct {
// bigger than expected. Note that in safety builds, Zig is allowed
// to insert a secret field for safety checks.
comptime {
if (!std.debug.runtime_safety) {
assert(@sizeOf(Data) == 8);
switch (builtin.mode) {
.Debug, .ReleaseSafe => {},
.ReleaseFast, .ReleaseSmall => assert(@sizeOf(Data) == 8),
}
}
};
Expand Down
19 changes: 15 additions & 4 deletions src/Compilation.zig
Original file line number Diff line number Diff line change
Expand Up @@ -3684,7 +3684,9 @@ const Header = extern struct {
items_len: u32,
extra_len: u32,
limbs_len: u32,
string_bytes_len: u32,
large_strings_len: u32,
large_string_bytes_len: u32,
small_string_bytes_len: u32,
tracked_insts_len: u32,
files_len: u32,
},
Expand Down Expand Up @@ -3732,7 +3734,9 @@ pub fn saveState(comp: *Compilation) !void {
.items_len = @intCast(local.mutate.items.len),
.extra_len = @intCast(local.mutate.extra.len),
.limbs_len = @intCast(local.mutate.limbs.len),
.string_bytes_len = @intCast(local.mutate.strings.len),
.large_strings_len = @intCast(local.mutate.large_strings.len),
.large_string_bytes_len = @intCast(local.mutate.large_string_bytes.len),
.small_string_bytes_len = @intCast(local.mutate.small_string_bytes.len),
.tracked_insts_len = @intCast(local.mutate.tracked_insts.len),
.files_len = @intCast(local.mutate.files.len),
},
Expand Down Expand Up @@ -3775,8 +3779,15 @@ pub fn saveState(comp: *Compilation) !void {
addBuf(&bufs, @ptrCast(local.shared.items.view().items(.data)[0..pt_header.intern_pool.items_len]));
addBuf(&bufs, @ptrCast(local.shared.items.view().items(.tag)[0..pt_header.intern_pool.items_len]));
}
if (pt_header.intern_pool.string_bytes_len > 0) {
addBuf(&bufs, local.shared.strings.view().items(.@"0")[0..pt_header.intern_pool.string_bytes_len]);
if (pt_header.intern_pool.large_strings_len > 0) {
addBuf(&bufs, @ptrCast(local.shared.large_strings.view().items(.offset)[0..pt_header.intern_pool.large_strings_len]));
addBuf(&bufs, @ptrCast(local.shared.large_strings.view().items(.len)[0..pt_header.intern_pool.large_strings_len]));
}
if (pt_header.intern_pool.large_string_bytes_len > 0) {
addBuf(&bufs, local.shared.large_string_bytes.view().items(.@"0")[0..pt_header.intern_pool.large_string_bytes_len]);
}
if (pt_header.intern_pool.small_string_bytes_len > 0) {
addBuf(&bufs, local.shared.small_string_bytes.view().items(.@"0")[0..pt_header.intern_pool.small_string_bytes_len]);
}
if (pt_header.intern_pool.tracked_insts_len > 0) {
addBuf(&bufs, @ptrCast(local.shared.tracked_insts.view().items(.@"0")[0..pt_header.intern_pool.tracked_insts_len]));
Expand Down
Loading
Loading