1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-14 14:24:10 +02:00

Deferred call fix for 'do' statement

This commit is contained in:
Brian Fiete 2020-05-30 06:43:30 -07:00
parent 1e8d2ca6e8
commit 91e0d10128

View file

@ -5267,15 +5267,16 @@ void BfModule::Visit(BfDoStatement* doStmt)
mBfIRBuilder->CreateBr(bodyBB); mBfIRBuilder->CreateBr(bodyBB);
mBfIRBuilder->SetInsertPoint(bodyBB); mBfIRBuilder->SetInsertPoint(bodyBB);
VisitEmbeddedStatement(doStmt->mEmbeddedStatement); VisitEmbeddedStatement(doStmt->mEmbeddedStatement);
RestoreScopeState();
if (!mCurMethodState->mLeftBlockUncond) if (!mCurMethodState->mLeftBlockUncond)
mBfIRBuilder->CreateBr(endBB); mBfIRBuilder->CreateBr(endBB);
mCurMethodState->SetHadReturn(false); mCurMethodState->SetHadReturn(false);
mCurMethodState->mLeftBlockUncond = false; mCurMethodState->mLeftBlockUncond = false;
mBfIRBuilder->AddBlock(endBB); mBfIRBuilder->AddBlock(endBB);
mBfIRBuilder->SetInsertPoint(endBB); mBfIRBuilder->SetInsertPoint(endBB);
RestoreScopeState();
} }
void BfModule::Visit(BfRepeatStatement* repeatStmt) void BfModule::Visit(BfRepeatStatement* repeatStmt)