mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-09 12:02:21 +02:00
Fixed auto-ctor issue with splats
This commit is contained in:
parent
2fd58a38bb
commit
111631dd9c
1 changed files with 5 additions and 5 deletions
|
@ -16310,17 +16310,17 @@ void BfModule::EmitCtorBody(bool& skipBody)
|
||||||
BF_ASSERT(paramDef->mName == fieldInstance.GetFieldDef()->mName);
|
BF_ASSERT(paramDef->mName == fieldInstance.GetFieldDef()->mName);
|
||||||
if (fieldInstance.mDataIdx < 0)
|
if (fieldInstance.mDataIdx < 0)
|
||||||
continue;
|
continue;
|
||||||
|
if (paramDef->mParamKind != BfParamKind_Normal)
|
||||||
|
continue;
|
||||||
|
|
||||||
auto localVar = mCurMethodState->mLocals[paramIdx + 1];
|
auto localVar = mCurMethodState->mLocals[paramIdx + 1];
|
||||||
BF_ASSERT(localVar->mName == paramDef->mName);
|
BF_ASSERT(localVar->mName == paramDef->mName);
|
||||||
auto localVal = exprEvaluator.LoadLocal(localVar);
|
auto localVal = exprEvaluator.LoadLocal(localVar);
|
||||||
|
localVal = LoadOrAggregateValue(localVal);
|
||||||
if (paramDef->mParamKind != BfParamKind_Normal)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
auto thisVal = GetThis();
|
auto thisVal = GetThis();
|
||||||
auto fieldPtr = mBfIRBuilder->CreateInBoundsGEP(thisVal.mValue, 0, fieldInstance.mDataIdx);
|
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);
|
MarkFieldInitialized(&fieldInstance);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue