| ... | ... | @@ -148,19 +148,23 @@ pub fn generateLazySymbol( |
| 148 | 148 | if (lazy_sym.ty == .anyerror_type) { |
| 149 | 149 | alignment.* = .@"4"; |
| 150 | 150 | const err_names = ip.global_error_set.getNamesFromMainThread(); |
| 151 | | mem.writeInt(u32, try code.addManyAsArray(4), @intCast(err_names.len), endian); |
| 152 | | var offset = code.items.len; |
| 153 | | try code.resize((err_names.len + 1) * 4); |
| 151 | var offset_index: u32 = @intCast(code.items.len); |
| 152 | var string_index: u32 = @intCast(4 * (1 + err_names.len + @intFromBool(err_names.len > 0))); |
| 153 | try code.resize(offset_index + string_index); |
| 154 | mem.writeInt(u32, code.items[offset_index..][0..4], @intCast(err_names.len), endian); |
| 155 | if (err_names.len == 0) return .ok; |
| 156 | offset_index += 4; |
| 154 | 157 | for (err_names) |err_name_nts| { |
| 155 | 158 | const err_name = err_name_nts.toSlice(ip); |
| 156 | | mem.writeInt(u32, code.items[offset..][0..4], @intCast(code.items.len), endian); |
| 157 | | offset += 4; |
| 159 | mem.writeInt(u32, code.items[offset_index..][0..4], string_index, endian); |
| 160 | offset_index += 4; |
| 158 | 161 | try code.ensureUnusedCapacity(err_name.len + 1); |
| 159 | 162 | code.appendSliceAssumeCapacity(err_name); |
| 160 | 163 | code.appendAssumeCapacity(0); |
| 164 | string_index += @intCast(err_name.len + 1); |
| 161 | 165 | } |
| 162 | | mem.writeInt(u32, code.items[offset..][0..4], @intCast(code.items.len), endian); |
| 163 | | return Result.ok; |
| 166 | mem.writeInt(u32, code.items[offset_index..][0..4], string_index, endian); |
| 167 | return .ok; |
| 164 | 168 | } else if (Type.fromInterned(lazy_sym.ty).zigTypeTag(pt.zcu) == .@"enum") { |
| 165 | 169 | alignment.* = .@"1"; |
| 166 | 170 | const enum_ty = Type.fromInterned(lazy_sym.ty); |
| ... | ... | @@ -171,8 +175,8 @@ pub fn generateLazySymbol( |
| 171 | 175 | code.appendSliceAssumeCapacity(tag_name); |
| 172 | 176 | code.appendAssumeCapacity(0); |
| 173 | 177 | } |
| 174 | | return Result.ok; |
| 175 | | } else return .{ .fail = try ErrorMsg.create( |
| 178 | return .ok; |
| 179 | } else return .{ .fail = try .create( |
| 176 | 180 | gpa, |
| 177 | 181 | src_loc, |
| 178 | 182 | "TODO implement generateLazySymbol for {s} {}", |