authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-01-11 19:04:16-08:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-01-15 15:11:36-08:00
logd0d0847cd0f9fcb190c9460fc090f3a1891ad443
tree5800a04c5e282ff8da090090511fd05d9ab1a821
parente5d78f0b5550b69b29fb59885d159edbfac8b7d5

wasm linker: don't crash on ref to void


1 files changed, 2 insertions(+), 1 deletions(-)

src/link/Wasm.zig+2-1
...@@ -4376,7 +4376,8 @@ pub fn navAddr(wasm: *Wasm, nav_index: InternPool.Nav.Index) u32 {...@@ -4376,7 +4376,8 @@ pub fn navAddr(wasm: *Wasm, nav_index: InternPool.Nav.Index) u32 {
4376 assert(wasm.flush_buffer.memory_layout_finished);4376 assert(wasm.flush_buffer.memory_layout_finished);
4377 const comp = wasm.base.comp;4377 const comp = wasm.base.comp;
4378 assert(comp.config.output_mode != .Obj);4378 assert(comp.config.output_mode != .Obj);
4379 const navs_exe_index: NavsExeIndex = @enumFromInt(wasm.navs_exe.getIndex(nav_index).?);4379 // If there is no entry it means the value is zero bits so any address will do.
4380 const navs_exe_index: NavsExeIndex = @enumFromInt(wasm.navs_exe.getIndex(nav_index) orelse return 0);
4380 log.debug("navAddr {s} {}", .{ navs_exe_index.name(wasm), nav_index });4381 log.debug("navAddr {s} {}", .{ navs_exe_index.name(wasm), nav_index });
4381 const ds_id: DataSegmentId = .pack(wasm, .{ .nav_exe = navs_exe_index });4382 const ds_id: DataSegmentId = .pack(wasm, .{ .nav_exe = navs_exe_index });
4382 return wasm.flush_buffer.data_segments.get(ds_id).?;4383 return wasm.flush_buffer.data_segments.get(ds_id).?;