aboutsummaryrefslogtreecommitdiffhomepage
path: root/c/eval.c
diff options
context:
space:
mode:
authorlemon <lsof@mailbox.org>2025-11-16 17:46:08 +0100
committerlemon <lsof@mailbox.org>2025-11-19 10:40:35 +0100
commit81fe479bc2cc456a8f1c755b1b5d941c3ffed2e7 (patch)
treecc93499c9877aadf2340980e3d5f500e41568081 /c/eval.c
parent0db56689eb9f82a20331137111a8f2da2d759cca (diff)
eval: fix enum edge case
Diffstat (limited to 'c/eval.c')
-rw-r--r--c/eval.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/c/eval.c b/c/eval.c
index 4e5411d..ce77c6e 100644
--- a/c/eval.c
+++ b/c/eval.c
@@ -27,8 +27,8 @@ static bool
numcast(union type ty, struct expr *dst, const struct expr *src)
{
struct expr tmp;
- enum typetag td = targ2hosttype(ty.t);
- enum typetag ts = targ2hosttype(src->ty.t == TYENUM ? src->ty.backing : src->ty.t);
+ enum typetag td = targ2hosttype(scalartypet(ty));
+ enum typetag ts = targ2hosttype(scalartypet(src->ty));
vlong isrc;
if (src == dst) tmp = *src, src = &tmp;