mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-13 05:44:11 +02:00
Fixed zero-sized sized array foreach
This commit is contained in:
parent
733f7ec983
commit
966b740e6c
1 changed files with 3 additions and 5 deletions
|
@ -6200,14 +6200,12 @@ void BfModule::Visit(BfForEachStatement* forEachStmt)
|
||||||
deferredLocalAssignData.mVarIdBarrier = mCurMethodState->GetRootMethodState()->mCurLocalVarId;
|
deferredLocalAssignData.mVarIdBarrier = mCurMethodState->GetRootMethodState()->mCurLocalVarId;
|
||||||
SetAndRestoreValue<BfDeferredLocalAssignData*> prevDLA(mCurMethodState->mDeferredLocalAssignData, &deferredLocalAssignData);
|
SetAndRestoreValue<BfDeferredLocalAssignData*> prevDLA(mCurMethodState->mDeferredLocalAssignData, &deferredLocalAssignData);
|
||||||
|
|
||||||
|
SetAndRestoreValue<bool> prevIgnoreWrites(mBfIRBuilder->mIgnoreWrites);
|
||||||
|
|
||||||
if ((target.mType->IsSizedArray()) && (((BfSizedArrayType*)target.mType)->mElementCount == 0))
|
if ((target.mType->IsSizedArray()) && (((BfSizedArrayType*)target.mType)->mElementCount == 0))
|
||||||
{
|
{
|
||||||
EmitEnsureInstructionAt();
|
EmitEnsureInstructionAt();
|
||||||
SetAndRestoreValue<bool> ignoreWrites(mBfIRBuilder->mIgnoreWrites, true);
|
mBfIRBuilder->mIgnoreWrites = true;
|
||||||
if (forEachStmt->mEmbeddedStatement != NULL)
|
|
||||||
VisitEmbeddedStatement(forEachStmt->mEmbeddedStatement);
|
|
||||||
RestoreScopeState();
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BfIdentifierNode* nameNode = NULL;
|
BfIdentifierNode* nameNode = NULL;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue