From a6c2f8a9177eeae64b83e4aeafe46dbe310b3861 Mon Sep 17 00:00:00 2001 From: lemon Date: Thu, 25 Dec 2025 13:28:56 +0100 Subject: avoid GOT relocations in unnecessary instances Also change xcon to have a flagset for symbols (whether it's a function, locally defined; later: thread local, etc). --- c/c.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'c/c.c') diff --git a/c/c.c b/c/c.c index e070924..8a06272 100644 --- a/c/c.c +++ b/c/c.c @@ -2867,7 +2867,7 @@ expraddr(struct function *fn, const struct expr *ex) uchar *p = objout.code ? objout.textbegin + off : objout.rodata.p + off; memcpy(p, fn->name, typearrlen(decl->ty)-1); } - return mksymref(decl->sym, decl->ty.t == TYFUNC); + return mksymref(decl->sym, (SFUNC & -(decl->ty.t == TYFUNC)) | (SLOCAL & -(decl->scls == SCSTATIC || decl->isdef))); default: assert(0); } -- cgit v1.2.3