mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-11 04:52:21 +02:00
Fixed processing error of sized array with size containing local variables
This commit is contained in:
parent
cb6f88b047
commit
06d896330d
1 changed files with 17 additions and 10 deletions
|
@ -6373,16 +6373,23 @@ void BfExprEvaluator::FinishDeferredEvals(BfResolvedArgs& argValues)
|
||||||
auto variableDeclaration = BfNodeDynCast<BfVariableDeclaration>((*argValues.mArguments)[argIdx]);
|
auto variableDeclaration = BfNodeDynCast<BfVariableDeclaration>((*argValues.mArguments)[argIdx]);
|
||||||
if ((variableDeclaration != NULL) && (variableDeclaration->mNameNode != NULL))
|
if ((variableDeclaration != NULL) && (variableDeclaration->mNameNode != NULL))
|
||||||
{
|
{
|
||||||
BfLocalVariable* localVar = new BfLocalVariable();
|
if (mModule->mCurMethodState == NULL)
|
||||||
localVar->mName = variableDeclaration->mNameNode->ToString();
|
{
|
||||||
localVar->mResolvedType = mModule->GetPrimitiveType(BfTypeCode_Var);
|
mModule->Fail("Illegal local variable", variableDeclaration);
|
||||||
localVar->mAddr = mModule->mBfIRBuilder->GetFakeVal();
|
}
|
||||||
localVar->mReadFromId = 0;
|
else
|
||||||
localVar->mWrittenToId = 0;
|
{
|
||||||
localVar->mAssignedKind = BfLocalVarAssignKind_Unconditional;
|
BfLocalVariable* localVar = new BfLocalVariable();
|
||||||
mModule->CheckVariableDef(localVar);
|
localVar->mName = variableDeclaration->mNameNode->ToString();
|
||||||
localVar->Init();
|
localVar->mResolvedType = mModule->GetPrimitiveType(BfTypeCode_Var);
|
||||||
mModule->AddLocalVariableDef(localVar, true);
|
localVar->mAddr = mModule->mBfIRBuilder->GetFakeVal();
|
||||||
|
localVar->mReadFromId = 0;
|
||||||
|
localVar->mWrittenToId = 0;
|
||||||
|
localVar->mAssignedKind = BfLocalVarAssignKind_Unconditional;
|
||||||
|
mModule->CheckVariableDef(localVar);
|
||||||
|
localVar->Init();
|
||||||
|
mModule->AddLocalVariableDef(localVar, true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue