| ... | ... | @@ -487,19 +487,14 @@ fn lowerDeclRef( |
| 487 | 487 | return Result{ .appended = {} }; |
| 488 | 488 | } |
| 489 | 489 | |
| 490 | const target = bin_file.options.target; |
| 491 | const ptr_width = target.cpu.arch.ptrBitWidth(); |
| 490 | 492 | const is_fn_body = decl.ty.zigTypeTag() == .Fn; |
| 491 | 493 | if (!is_fn_body and !decl.ty.hasRuntimeBits()) { |
| 492 | | return Result{ |
| 493 | | .fail = try ErrorMsg.create( |
| 494 | | bin_file.allocator, |
| 495 | | src_loc, |
| 496 | | "TODO handle void types when lowering decl ref", |
| 497 | | .{}, |
| 498 | | ), |
| 499 | | }; |
| 494 | try code.writer().writeByteNTimes(0xaa, @divExact(ptr_width, 8)); |
| 495 | return Result{ .appended = {} }; |
| 500 | 496 | } |
| 501 | 497 | |
| 502 | | if (decl.analysis != .complete) return error.AnalysisFail; |
| 503 | 498 | decl.markAlive(); |
| 504 | 499 | const vaddr = vaddr: { |
| 505 | 500 | if (bin_file.cast(link.File.MachO)) |macho_file| { |
| ... | ... | @@ -510,8 +505,8 @@ fn lowerDeclRef( |
| 510 | 505 | break :vaddr bin_file.getDeclVAddr(decl); |
| 511 | 506 | }; |
| 512 | 507 | |
| 513 | | const endian = bin_file.options.target.cpu.arch.endian(); |
| 514 | | switch (bin_file.options.target.cpu.arch.ptrBitWidth()) { |
| 508 | const endian = target.cpu.arch.endian(); |
| 509 | switch (ptr_width) { |
| 515 | 510 | 16 => mem.writeInt(u16, try code.addManyAsArray(2), @intCast(u16, vaddr), endian), |
| 516 | 511 | 32 => mem.writeInt(u32, try code.addManyAsArray(4), @intCast(u32, vaddr), endian), |
| 517 | 512 | 64 => mem.writeInt(u64, try code.addManyAsArray(8), vaddr, endian), |