aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2025-01-11 19:04:16 -0800
committerAndrew Kelley <andrew@ziglang.org>2025-01-15 15:11:36 -0800
commitd0d0847cd0f9fcb190c9460fc090f3a1891ad443 (patch)
tree5800a04c5e282ff8da090090511fd05d9ab1a821 /src
parente5d78f0b5550b69b29fb59885d159edbfac8b7d5 (diff)
downloadzig-d0d0847cd0f9fcb190c9460fc090f3a1891ad443.tar.gz
zig-d0d0847cd0f9fcb190c9460fc090f3a1891ad443.zip
wasm linker: don't crash on ref to void
Diffstat (limited to 'src')
-rw-r--r--src/link/Wasm.zig3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/link/Wasm.zig b/src/link/Wasm.zig
index 8e5bf00131..8c29f95aae 100644
--- a/src/link/Wasm.zig
+++ b/src/link/Wasm.zig
@@ -4376,7 +4376,8 @@ pub fn navAddr(wasm: *Wasm, nav_index: InternPool.Nav.Index) u32 {
assert(wasm.flush_buffer.memory_layout_finished);
const comp = wasm.base.comp;
assert(comp.config.output_mode != .Obj);
- const navs_exe_index: NavsExeIndex = @enumFromInt(wasm.navs_exe.getIndex(nav_index).?);
+ // If there is no entry it means the value is zero bits so any address will do.
+ const navs_exe_index: NavsExeIndex = @enumFromInt(wasm.navs_exe.getIndex(nav_index) orelse return 0);
log.debug("navAddr {s} {}", .{ navs_exe_index.name(wasm), nav_index });
const ds_id: DataSegmentId = .pack(wasm, .{ .nav_exe = navs_exe_index });
return wasm.flush_buffer.data_segments.get(ds_id).?;