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