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

Assert fix, comptime valueless return fix

This commit is contained in:
Brian Fiete 2021-11-03 07:48:01 -07:00
parent 613aa116f4
commit a9872fcbac
2 changed files with 8 additions and 4 deletions

View file

@ -4347,7 +4347,8 @@ BfTypedValue BfModule::GetFieldInitializerValue(BfFieldInstance* fieldInstance,
{ {
if (fieldInstance->mResolvedType->IsUndefSizedArray()) if (fieldInstance->mResolvedType->IsUndefSizedArray())
{ {
AssertErrorState(); if ((!mBfIRBuilder->mIgnoreWrites) && (!mCompiler->mFastFinish))
AssertErrorState();
} }
else else
{ {
@ -15141,12 +15142,15 @@ void BfModule::EmitReturn(const BfTypedValue& val)
} }
else if (mIsComptimeModule) else if (mIsComptimeModule)
{ {
mBfIRBuilder->CreateSetRet(val.mValue, val.mType->mTypeId); if (!val.mType->IsValuelessType())
mBfIRBuilder->CreateSetRet(val.mValue, val.mType->mTypeId);
else
mBfIRBuilder->CreateSetRet(BfIRValue(), val.mType->mTypeId);
} }
else else
{ {
// Just ignore // Just ignore
BF_ASSERT(mCurMethodInstance->mReturnType->IsVar()); BF_ASSERT(mCurMethodInstance->mReturnType->IsVar());
} }
} }
} }

View file

@ -3239,7 +3239,7 @@ void CeContext::PrepareConstStructEntry(CeConstStructData& constEntry)
{ {
if (constEntry.mHash.IsZero()) if (constEntry.mHash.IsZero())
{ {
constEntry.mHash = Hash128(&constEntry.mData[0], constEntry.mData.mSize); constEntry.mHash = Hash128(constEntry.mData.mVals, constEntry.mData.mSize);
if (!constEntry.mFixups.IsEmpty()) if (!constEntry.mFixups.IsEmpty())
constEntry.mHash = Hash128(&constEntry.mFixups[0], constEntry.mFixups.mSize * sizeof(CeConstStructFixup), constEntry.mHash); constEntry.mHash = Hash128(&constEntry.mFixups[0], constEntry.mFixups.mSize * sizeof(CeConstStructFixup), constEntry.mHash);
} }