From 484a0bf3754cac7c71fb89155c1c1e7c51d45d77 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Sun, 12 Sep 2021 18:14:22 -0700 Subject: [PATCH] Fix for literal int int expression block, fixed lifetime --- IDEHelper/Compiler/BfStmtEvaluator.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/IDEHelper/Compiler/BfStmtEvaluator.cpp b/IDEHelper/Compiler/BfStmtEvaluator.cpp index 302b0512..e4a598c1 100644 --- a/IDEHelper/Compiler/BfStmtEvaluator.cpp +++ b/IDEHelper/Compiler/BfStmtEvaluator.cpp @@ -3409,7 +3409,9 @@ void BfModule::VisitCodeBlock(BfBlock* block) if ((exprEvaluator->mResult) && (!exprEvaluator->mResult.mType->IsValuelessType()) && (!exprEvaluator->mResult.IsAddr())) { - // We need to make sure we don't retain any values through the scope's ValueScopeHardEnd + FixIntUnknown(exprEvaluator->mResult, exprEvaluator->mExpectingType); + // We need to make sure we don't retain any values through the scope's ValueScopeHardEnd - and extend alloca through previous scope + SetAndRestoreValue prevScope(mCurMethodState->mCurScope, mCurMethodState->mCurScope->mPrevScope); exprEvaluator->mResult = MakeAddressable(exprEvaluator->mResult); } }