diff options
| author | 2025-12-14 12:30:20 +0100 | |
|---|---|---|
| committer | 2025-12-14 17:26:04 +0100 | |
| commit | caf3e504af18d8329af4d6ce6ed43e314251e01a (patch) | |
| tree | 40979e770284e9eb416f2de13a6db732102fd123 /c/c.c | |
| parent | d8b4e87af669c2b260686a5db67f7f02b4c164d9 (diff) | |
only put dats can in .text now when emitting it
Diffstat (limited to 'c/c.c')
| -rw-r--r-- | c/c.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -4308,8 +4308,8 @@ function(struct comp *cm, struct function *fn, const char **pnames, const struct if (!ifunc) ifunc = intern("__func__"); union type ty = mkarrtype(mktype(TYCHAR), QCONST, strlen(fn->name) + 1); const char *sym = mkhiddensym(fn->name, ifunc, 1); - uint off = objnewdat(sym, Stext, 0, typesize(ty), typealign(ty)); - uchar *p = objout.textbegin + off; + uint off = objnewdat(sym, objout.code ? Stext : Srodata, 0, typesize(ty), typealign(ty)); + uchar *p = objout.code ? objout.textbegin + off : objout.rodata.p + off; memcpy(p, fn->name, typearrlen(ty)-1); putdecl(cm, &(struct decl) { .ty = ty, .qual = QCONST, |