x86_64: fix error_set_has_value of inferred error sets

This commit is contained in:
Jacob Young 2025-04-09 23:23:44 -04:00
parent 06eebafadd
commit 73498737a2

View File

@ -116306,10 +116306,17 @@ const Select = struct {
},
.frame => |frame_index| .{ try cg.tempInit(spec.type, .{ .load_frame = .{ .index = frame_index } }), true },
.lazy_symbol => |lazy_symbol_spec| {
const ip = &pt.zcu.intern_pool;
const ty = if (lazy_symbol_spec.ref == .none) spec.type else lazy_symbol_spec.ref.typeOf(s);
const lazy_symbol: link.File.LazySymbol = .{
.kind = lazy_symbol_spec.kind,
.ty = ty.toIntern(),
.ty = switch (ip.indexToKey(ty.toIntern())) {
.inferred_error_set_type => |func_index| switch (ip.funcIesResolvedUnordered(func_index)) {
.none => unreachable, // unresolved inferred error set
else => |ty_index| ty_index,
},
else => ty.toIntern(),
},
};
return .{ try cg.tempInit(.usize, .{ .lea_symbol = .{
.sym_index = if (cg.bin_file.cast(.elf)) |elf_file|