| ... | @@ -107022,10 +107022,17 @@ const Select = struct { | ... | @@ -107022,10 +107022,17 @@ const Select = struct { |
| 107022 | }, | 107022 | }, |
| 107023 | .frame => |frame_index| .{ try cg.tempInit(spec.type, .{ .load_frame = .{ .index = frame_index } }), true }, | 107023 | .frame => |frame_index| .{ try cg.tempInit(spec.type, .{ .load_frame = .{ .index = frame_index } }), true }, |
| 107024 | .lazy_symbol => |lazy_symbol_spec| { | 107024 | .lazy_symbol => |lazy_symbol_spec| { |
| | 107025 | const ip = &pt.zcu.intern_pool; |
| 107025 | const ty = if (lazy_symbol_spec.ref == .none) spec.type else lazy_symbol_spec.ref.typeOf(s); | 107026 | const ty = if (lazy_symbol_spec.ref == .none) spec.type else lazy_symbol_spec.ref.typeOf(s); |
| 107026 | const lazy_symbol: link.File.LazySymbol = .{ | 107027 | const lazy_symbol: link.File.LazySymbol = .{ |
| 107027 | .kind = lazy_symbol_spec.kind, | 107028 | .kind = lazy_symbol_spec.kind, |
| 107028 | .ty = ty.toIntern(), | 107029 | .ty = switch (ip.indexToKey(ty.toIntern())) { |
| | 107030 | .inferred_error_set_type => |func_index| switch (ip.funcIesResolvedUnordered(func_index)) { |
| | 107031 | .none => unreachable, // unresolved inferred error set |
| | 107032 | else => |ty_index| ty_index, |
| | 107033 | }, |
| | 107034 | else => ty.toIntern(), |
| | 107035 | }, |
| 107029 | }; | 107036 | }; |
| 107030 | return .{ try cg.tempInit(.usize, .{ .lea_symbol = .{ | 107037 | return .{ try cg.tempInit(.usize, .{ .lea_symbol = .{ |
| 107031 | .sym_index = if (cg.bin_file.cast(.elf)) |elf_file| | 107038 | .sym_index = if (cg.bin_file.cast(.elf)) |elf_file| |