ww: implement package initialization

This commit is contained in:
2026-08-14 19:02:35 +09:00
parent 72e890d5aa
commit c6bec0914d
24 changed files with 5279 additions and 1009 deletions

View File

@@ -8698,7 +8698,11 @@ fn cgcall(c: *cgen, n: *syntax.node) void = {
emitline("\tCALL\tAX\n");
} else {
emitline("\tCALL\t");
if (callee != nil) {
if (callee != nil && callee.refdecl != nil
&& callee.refdecl.linksym.len > 0) {
emitbytes(callee.refdecl.linksym.ptr,
callee.refdecl.linksym.len: u64);
} else { if (callee != nil) {
if (callee.kind == syntax.nkind.N_IDENT) {
// Bare `f()` — same-module by ww's resolver,
// so c.curmod is the disambiguation hint.
@@ -8718,7 +8722,7 @@ fn cgcall(c: *cgen, n: *syntax.node) void = {
};
emitfnname(c, calleename, hint);
};};
};
}; };
emitline("(SB)\n");
};
// Caller cleanup for stack-passed args (args 7+, or any