From 2956bdeea9d1f38e0663be0663a2a9a1272bfdb1 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Thu, 30 Dec 2021 07:21:42 -0500 Subject: [PATCH] Disabled range checking for const math with overflow operators --- IDEHelper/Compiler/BfExprEvaluator.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/IDEHelper/Compiler/BfExprEvaluator.cpp b/IDEHelper/Compiler/BfExprEvaluator.cpp index 5ec05d69..3560a6bd 100644 --- a/IDEHelper/Compiler/BfExprEvaluator.cpp +++ b/IDEHelper/Compiler/BfExprEvaluator.cpp @@ -22568,17 +22568,20 @@ void BfExprEvaluator::PerformBinaryOperation(BfType* resultType, BfIRValue convL case BfBinaryOp_Add: case BfBinaryOp_OverflowAdd: mResult = BfTypedValue(mModule->mBfIRBuilder->CreateAdd(convLeftValue, convRightValue), resultType); - mModule->CheckRangeError(resultType, opToken); + if (binaryOp != BfBinaryOp_OverflowAdd) + mModule->CheckRangeError(resultType, opToken); break; case BfBinaryOp_Subtract: case BfBinaryOp_OverflowSubtract: mResult = BfTypedValue(mModule->mBfIRBuilder->CreateSub(convLeftValue, convRightValue), resultType); - mModule->CheckRangeError(resultType, opToken); + if (binaryOp != BfBinaryOp_OverflowSubtract) + mModule->CheckRangeError(resultType, opToken); break; case BfBinaryOp_Multiply: case BfBinaryOp_OverflowMultiply: mResult = BfTypedValue(mModule->mBfIRBuilder->CreateMul(convLeftValue, convRightValue), resultType); - mModule->CheckRangeError(resultType, opToken); + if (binaryOp != BfBinaryOp_OverflowMultiply) + mModule->CheckRangeError(resultType, opToken); break; case BfBinaryOp_Divide: {