mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-09 20:12:21 +02:00
Fixed issue with valueless ref params
This commit is contained in:
parent
b53089a3e4
commit
6d65d8d11d
2 changed files with 6 additions and 0 deletions
|
@ -3074,6 +3074,11 @@ BfTypedValue BfExprEvaluator::LoadLocal(BfLocalVariable* varDecl, bool allowRef)
|
|||
localResult = BfTypedValue(varDecl->mAddr, varDecl->mResolvedType, BfTypedValueKind_SplatHead);
|
||||
else if (!varDecl->mResolvedType->IsValuelessType())
|
||||
localResult = BfTypedValue(varDecl->mValue, varDecl->mResolvedType, BfTypedValueKind_SplatHead);
|
||||
else if ((varDecl->mResolvedType->IsRef()) && (!allowRef))
|
||||
{
|
||||
BF_ASSERT(varDecl->mResolvedType->IsValuelessType());
|
||||
localResult = BfTypedValue(varDecl->mValue, varDecl->mResolvedType->GetUnderlyingType());
|
||||
}
|
||||
else
|
||||
localResult = BfTypedValue(varDecl->mValue, varDecl->mResolvedType);
|
||||
//BF_ASSERT(varDecl->mValue.IsArg());
|
||||
|
|
|
@ -15887,6 +15887,7 @@ void BfModule::ProcessMethod_SetupParams(BfMethodInstance* methodInstance, BfTyp
|
|||
paramVar->mIsSplat = true; // Treat skipped (valueless) as a splat
|
||||
paramVar->mValue = mBfIRBuilder->GetFakeVal();
|
||||
}
|
||||
|
||||
paramVar->mIsLowered = resolvedType->GetLoweredType(BfTypeUsage_Parameter, &loweredTypeCode, &loweredTypeCode2) != BfTypeCode_None;
|
||||
paramVar->mIsStruct = resolvedType->IsComposite() && !resolvedType->IsTypedPrimitive();
|
||||
paramVar->mParamIdx = paramIdx;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue