1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-23 18:18:00 +02:00

Fixed non-composites 'in' parameters

This commit is contained in:
Brian Fiete 2022-06-14 06:57:24 -07:00
parent 309e3cb02a
commit 0cf9135b8a
5 changed files with 51 additions and 8 deletions

View file

@ -5093,6 +5093,9 @@ BfTypedValue BfExprEvaluator::LoadField(BfAstNode* targetSrc, BfTypedValue targe
}
}
if ((fieldDef->mIsVolatile) && (retVal.IsAddr()))
retVal.mKind = BfTypedValueKind_VolatileAddr;
if (wantsLoadValue)
retVal = mModule->LoadValue(retVal, NULL, mIsVolatileReference);
else
@ -5902,8 +5905,8 @@ void BfExprEvaluator::ResolveArgValues(BfResolvedArgs& resolvedArgs, BfResolveAr
resolvedArg.mResolvedType = argValue.mType;
if (resolvedArg.mResolvedType->IsRef())
argValue.mKind = BfTypedValueKind_Value;
else if ((!resolvedArg.mResolvedType->IsStruct()) && (!resolvedArg.mResolvedType->IsSizedArray()) && (!resolvedArg.mResolvedType->IsValuelessType()))
argValue = mModule->LoadValue(argValue, NULL, exprEvaluator.mIsVolatileReference);
if (exprEvaluator.mIsVolatileReference)
resolvedArg.mArgFlags = (BfArgFlags)(resolvedArg.mArgFlags | BfArgFlag_Volatile);
}
resolvedArg.mUncastedTypedValue = argValue;
resolvedArg.mTypedValue = argValue;