diff --git a/src/mapleall/mpl2mpl/src/constantfold.cpp b/src/mapleall/mpl2mpl/src/constantfold.cpp index 7fb0bbb4005b588f9a1f86e1294d73271bb1999d..6d38afb1c70a078e0af77f7368984f62a3c01701 100644 --- a/src/mapleall/mpl2mpl/src/constantfold.cpp +++ b/src/mapleall/mpl2mpl/src/constantfold.cpp @@ -1709,7 +1709,7 @@ std::pair ConstantFold::FoldBinary(BinaryNode *node) { result = NewBinaryNode(node, op, primType, l, PairToExpr(rPrimTypes, rp)); sum = 0; } - if (result->GetPrimType() != primType) { + if (!IsNoCvtNeeded(result->GetPrimType(), primType)) { result = mirModule->CurFuncCodeMemPool()->New(OP_cvt, primType, result->GetPrimType(), result); } } else if (rConst != nullptr && isInt) { @@ -1799,7 +1799,7 @@ std::pair ConstantFold::FoldBinary(BinaryNode *node) { result = NewBinaryNode(node, op, primType, PairToExpr(lPrimTypes, lp), r); sum = 0; } - if (result->GetPrimType() != primType) { + if (!IsNoCvtNeeded(result->GetPrimType(), primType)) { result = mirModule->CurFuncCodeMemPool()->New(OP_cvt, primType, result->GetPrimType(), result); } } else if (isInt && (op == OP_add || op == OP_sub)) {