From 1527d68566d82a6d22f57105d7e141aab519d069 Mon Sep 17 00:00:00 2001 From: Stevengre Date: Mon, 10 Nov 2025 12:41:21 +0800 Subject: [PATCH] fix(rt): add fallback for zero-sized constants in operand decoding --- kmir/src/kmir/kdist/mir-semantics/rt/data.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/kmir/src/kmir/kdist/mir-semantics/rt/data.md b/kmir/src/kmir/kdist/mir-semantics/rt/data.md index 087af074d..6d273684d 100644 --- a/kmir/src/kmir/kdist/mir-semantics/rt/data.md +++ b/kmir/src/kmir/kdist/mir-semantics/rt/data.md @@ -128,6 +128,13 @@ Constant operands are simply decoded according to their type. ... requires typeInfoVoidType =/=K lookupTy(TY) + + // Fallback for zero-sized constants whose type metadata was not emitted. + rule operandConstant(constOperand(_, _, mirConst(constantKindZeroSized, TY, _))) + => Aggregate(variantIdx(0), .List) + ... + + requires typeInfoVoidType ==K lookupTy(TY) ``` ### Copying and Moving