1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-09 03:52:19 +02:00

Fixed auto-ctor issue with splats

This commit is contained in:
Brian Fiete 2021-01-05 14:28:35 -08:00
parent 2fd58a38bb
commit 111631dd9c

View file

@ -16310,17 +16310,17 @@ void BfModule::EmitCtorBody(bool& skipBody)
BF_ASSERT(paramDef->mName == fieldInstance.GetFieldDef()->mName);
if (fieldInstance.mDataIdx < 0)
continue;
if (paramDef->mParamKind != BfParamKind_Normal)
continue;
auto localVar = mCurMethodState->mLocals[paramIdx + 1];
BF_ASSERT(localVar->mName == paramDef->mName);
auto localVal = exprEvaluator.LoadLocal(localVar);
if (paramDef->mParamKind != BfParamKind_Normal)
continue;
localVal = LoadOrAggregateValue(localVal);
auto thisVal = GetThis();
auto fieldPtr = mBfIRBuilder->CreateInBoundsGEP(thisVal.mValue, 0, fieldInstance.mDataIdx);
mBfIRBuilder->CreateAlignedStore(localVar->mValue, fieldPtr, localVar->mResolvedType->mAlign);
mBfIRBuilder->CreateAlignedStore(localVal.mValue, fieldPtr, localVar->mResolvedType->mAlign);
MarkFieldInitialized(&fieldInstance);
}
}