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

Fixed zero-sized sized array foreach

This commit is contained in:
Brian Fiete 2021-01-19 05:40:15 -08:00
parent 733f7ec983
commit 966b740e6c

View file

@ -6200,14 +6200,12 @@ void BfModule::Visit(BfForEachStatement* forEachStmt)
deferredLocalAssignData.mVarIdBarrier = mCurMethodState->GetRootMethodState()->mCurLocalVarId;
SetAndRestoreValue<BfDeferredLocalAssignData*> prevDLA(mCurMethodState->mDeferredLocalAssignData, &deferredLocalAssignData);
SetAndRestoreValue<bool> prevIgnoreWrites(mBfIRBuilder->mIgnoreWrites);
if ((target.mType->IsSizedArray()) && (((BfSizedArrayType*)target.mType)->mElementCount == 0))
{
EmitEnsureInstructionAt();
SetAndRestoreValue<bool> ignoreWrites(mBfIRBuilder->mIgnoreWrites, true);
if (forEachStmt->mEmbeddedStatement != NULL)
VisitEmbeddedStatement(forEachStmt->mEmbeddedStatement);
RestoreScopeState();
return;
mBfIRBuilder->mIgnoreWrites = true;
}
BfIdentifierNode* nameNode = NULL;