authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-12-22 14:22:05-08:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-01-15 15:11:36-08:00
log50626565ba9dcf15d992ae9c23dd5c1a5ae000c7
tree41e9839cf3e0c34ef3036d37a21ff3ebd81c7208
parentf1e167c1d8706a777acd9b4f12fa8d281430796d

wasm linker: fix missing function type entry for import


1 files changed, 4 insertions(+), 0 deletions(-)

src/link/Wasm.zig+4
......@@ -2449,6 +2449,7 @@ pub fn updateNav(wasm: *Wasm, pt: Zcu.PerThread, nav_index: InternPool.Nav.Index
24492449 const comp = wasm.base.comp;
24502450 const gpa = comp.gpa;
24512451 const is_obj = comp.config.output_mode == .Obj;
2452 const target = &comp.root_mod.resolved_target.result;
24522453
24532454 const nav_init, const chased_nav_index = switch (ip.indexToKey(nav.status.resolved.val)) {
24542455 .func => return, // global const which is a function alias
......@@ -2465,6 +2466,9 @@ pub fn updateNav(wasm: *Wasm, pt: Zcu.PerThread, nav_index: InternPool.Nav.Index
24652466 try wasm.function_imports.ensureUnusedCapacity(gpa, 1);
24662467 const zcu_import = wasm.addZcuImportReserved(ext.owner_nav);
24672468 wasm.function_imports.putAssumeCapacity(name, .fromZcuImport(zcu_import, wasm));
2469 // Ensure there is a corresponding function type table entry.
2470 const fn_info = zcu.typeToFunc(.fromInterned(ext.ty)).?;
2471 _ = try internFunctionType(wasm, fn_info.cc, fn_info.param_types.get(ip), .fromInterned(fn_info.return_type), target);
24682472 } else {
24692473 @panic("TODO extern data");
24702474 }