From efa44caee07f24a4dcf90beb7846f56852f31f7e Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Mon, 5 Oct 2020 14:54:55 -0700 Subject: [PATCH] Fixed phi with var failure value --- IDEHelper/Compiler/BfExprEvaluator.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/IDEHelper/Compiler/BfExprEvaluator.cpp b/IDEHelper/Compiler/BfExprEvaluator.cpp index 0419a738..22e21caa 100644 --- a/IDEHelper/Compiler/BfExprEvaluator.cpp +++ b/IDEHelper/Compiler/BfExprEvaluator.cpp @@ -16042,9 +16042,16 @@ void BfExprEvaluator::Visit(BfConditionalExpression* condExpr) BfIRValue phi; if (!trueValue.mType->IsValuelessType()) { - phi = mModule->mBfIRBuilder->CreatePhi(mModule->mBfIRBuilder->MapType(trueValue.mType), 2); - mModule->mBfIRBuilder->AddPhiIncoming(phi, trueValue.mValue, trueBlockPos); - mModule->mBfIRBuilder->AddPhiIncoming(phi, falseValue.mValue, falseBlockPos); + if (trueValue.mType->IsVar()) + { + phi = mModule->mBfIRBuilder->GetFakeVal(); + } + else + { + phi = mModule->mBfIRBuilder->CreatePhi(mModule->mBfIRBuilder->MapType(trueValue.mType), 2); + mModule->mBfIRBuilder->AddPhiIncoming(phi, trueValue.mValue, trueBlockPos); + mModule->mBfIRBuilder->AddPhiIncoming(phi, falseValue.mValue, falseBlockPos); + } } mModule->mBfIRBuilder->CreateBr(contBB); mModule->AddBasicBlock(contBB);