|
@@ -4255,7 +4255,7 @@ void BfModule::CreateFakeCallerMethod(const String& funcName)
|
|
|
SizedArray<BfIRValue, 8> args;
|
|
|
BfExprEvaluator exprEvaluator(this);
|
|
|
|
|
|
- if (mCurMethodInstance->GetStructRetIdx() != -1)
|
|
|
+ if (mCurMethodInstance->GetStructRetIdx() == 0)
|
|
|
{
|
|
|
auto retPtrType = CreatePointerType(mCurMethodInstance->mReturnType);
|
|
|
exprEvaluator.PushArg(GetDefaultTypedValue(retPtrType, true, BfDefaultValueKind_Const), args);
|
|
@@ -4267,6 +4267,12 @@ void BfModule::CreateFakeCallerMethod(const String& funcName)
|
|
|
exprEvaluator.PushThis(NULL, thisValue, mCurMethodInstance, args);
|
|
|
}
|
|
|
|
|
|
+ if (mCurMethodInstance->GetStructRetIdx() == 1)
|
|
|
+ {
|
|
|
+ auto retPtrType = CreatePointerType(mCurMethodInstance->mReturnType);
|
|
|
+ exprEvaluator.PushArg(GetDefaultTypedValue(retPtrType, true, BfDefaultValueKind_Const), args);
|
|
|
+ }
|
|
|
+
|
|
|
for (int paramIdx = 0; paramIdx < mCurMethodInstance->GetParamCount(); paramIdx++)
|
|
|
{
|
|
|
auto paramType = mCurMethodInstance->GetParamType(paramIdx);
|