From 3dd91560a2dca691953a5691e96787adeeb509d5 Mon Sep 17 00:00:00 2001 From: lemon Date: Thu, 9 Apr 2026 14:04:45 +0200 Subject: mkintcon: bugfix clamp i32 to i32 range --- src/ir.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/ir.c') diff --git a/src/ir.c b/src/ir.c index 298f26b..ead9ae4 100644 --- a/src/ir.c +++ b/src/ir.c @@ -136,12 +136,14 @@ mkirtype(Type t) Ref mkintcon(enum irclass k, s64int i) { + if (cls2siz[k] == 4) { /* check upper half is zero or -1 */ + assert(in_range((i >> 32) + 1, 0, 1)); + i = (int)i; + } if (i < 1l << 28 && i >= -(1l << 28)) { return mkref(RICON, i); } else { IRCon con = { .cls = k, .i = i }; - if (cls2siz[k] == 4) /* check upper half is zero or -1 */ - assert(in_range((i >> 32) + 1, 0, 1)); return newxcon(&con); } } -- cgit v1.2.3