From 7cdf81705a1f21bd628a3ab28ca3584d2dc081fa Mon Sep 17 00:00:00 2001 From: lemon Date: Mon, 8 Dec 2025 19:33:08 +0100 Subject: c: fix some static initialziers --- c/c.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'c/c.c') diff --git a/c/c.c b/c/c.c index 15f7009..681e71c 100644 --- a/c/c.c +++ b/c/c.c @@ -1261,6 +1261,8 @@ expr2reloc(union ref *psym, vlong *paddend, const struct expr *ex) { if (ex->t == EADDROF && globsym(psym, ex->sub)) { *paddend = 0; + } else if (isptrcvt(ex->ty) && globsym(psym, ex)) { + *paddend = 0; } else if (ex->t == EADDROF && ex->sub->t == EGETF && globsym(psym, ex->sub->sub)) { *paddend = ex->sub->fld.off; } else if (ex->t == EGETF && ex->ty.t == TYARRAY && globsym(psym, ex->sub)) { @@ -1278,7 +1280,7 @@ expr2reloc(union ref *psym, vlong *paddend, const struct expr *ex) } } goto Fail; - } else Fail: assert(0 && "non static reloc"); + } else Fail: fatal(&ex->span, "internal bug: non static reloc?"); } static bool -- cgit v1.2.3