1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 19:48:20 +02:00

Fixed a sized array initialization

This commit is contained in:
Brian Fiete 2020-04-12 08:37:22 -07:00
parent 5bb3966b47
commit e2a6a122c4
3 changed files with 23 additions and 12 deletions

View file

@ -7122,7 +7122,14 @@ BfTypedValue BfModule::CreateValueFromExpression(BfExprEvaluator& exprEvaluator,
}
if (!typedVal.mType->IsComposite()) // Load non-structs by default
{
if ((!mBfIRBuilder->mIgnoreWrites) && (!typedVal.mType->IsValuelessType()) && (!typedVal.mType->IsVar()))
{
BF_ASSERT(!typedVal.mValue.IsFake());
}
typedVal = LoadValue(typedVal, 0, exprEvaluator.mIsVolatileReference);
}
if (wantTypeRef != NULL)
{
@ -10224,7 +10231,7 @@ BfTypedValue BfModule::LoadValue(BfTypedValue typedValue, BfAstNode* refNode, bo
if (!typedValue.IsAddr())
return typedValue;
if (typedValue.mType->IsValuelessType())
if ((typedValue.mType->IsValuelessType()) || (typedValue.mType->IsVar()))
return BfTypedValue(mBfIRBuilder->GetFakeVal(), typedValue.mType, false);
BfIRValue loadedVal = typedValue.mValue;
@ -12282,7 +12289,7 @@ void BfModule::DoAddLocalVariable(BfLocalVariable* localVar)
}
BfLocalVariable* BfModule::AddLocalVariableDef(BfLocalVariable* localVarDef, bool addDebugInfo, bool doAliasValue, BfIRValue declareBefore, BfIRInitType initType)
{
{
if ((localVarDef->mValue) && (!localVarDef->mAddr) && (IsTargetingBeefBackend()))
{
if ((!localVarDef->mValue.IsConst()) && (!localVarDef->mValue.IsArg()) && (!localVarDef->mValue.IsFake()))