mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-14 22:34:09 +02:00
Fixed Linux interop issue
This commit is contained in:
parent
8f742301b7
commit
4fd722f386
4 changed files with 24 additions and 14 deletions
|
@ -17179,8 +17179,7 @@ void BfModule::ProcessMethod(BfMethodInstance* methodInstance, bool isInlineDup)
|
|||
UpdateSrcPos(methodDef->mBody);
|
||||
else if (mCurTypeInstance->mTypeDef->mTypeDeclaration != NULL)
|
||||
UpdateSrcPos(mCurTypeInstance->mTypeDef->mTypeDeclaration);
|
||||
|
||||
int declArgIdx = 0;
|
||||
|
||||
localIdx = 0;
|
||||
argIdx = 0;
|
||||
|
||||
|
@ -17201,6 +17200,9 @@ void BfModule::ProcessMethod(BfMethodInstance* methodInstance, bool isInlineDup)
|
|||
if ((isThis) && (thisType->IsValuelessType()))
|
||||
isThis = false;
|
||||
|
||||
if (paramVar->mValue.IsArg())
|
||||
BF_ASSERT(paramVar->mValue.mId == argIdx);
|
||||
|
||||
BfIRMDNode diVariable;
|
||||
if (wantsDIData)
|
||||
{
|
||||
|
@ -17293,12 +17295,10 @@ void BfModule::ProcessMethod(BfMethodInstance* methodInstance, bool isInlineDup)
|
|||
auto primType = mBfIRBuilder->GetPrimitiveType(loweredTypeCode);
|
||||
auto primPtrType = mBfIRBuilder->GetPointerTo(primType);
|
||||
auto primPtrVal = mBfIRBuilder->CreateBitCast(paramVar->mAddr, primPtrType);
|
||||
mBfIRBuilder->CreateStore(paramVar->mValue, primPtrVal);
|
||||
|
||||
mBfIRBuilder->CreateStore(paramVar->mValue, primPtrVal);
|
||||
|
||||
if (loweredTypeCode2 != BfTypeCode_None)
|
||||
{
|
||||
declArgIdx++;
|
||||
|
||||
auto primType2 = mBfIRBuilder->GetPrimitiveType(loweredTypeCode2);
|
||||
auto primPtrType2 = mBfIRBuilder->GetPointerTo(primType2);
|
||||
BfIRValue primPtrVal2;
|
||||
|
@ -17324,9 +17324,6 @@ void BfModule::ProcessMethod(BfMethodInstance* methodInstance, bool isInlineDup)
|
|||
}
|
||||
}
|
||||
|
||||
if (!isThis)
|
||||
declArgIdx++;
|
||||
|
||||
if (methodDef->mBody != NULL)
|
||||
UpdateSrcPos(methodDef->mBody);
|
||||
else if (methodDef->mDeclaringType->mTypeDeclaration != NULL)
|
||||
|
@ -17490,7 +17487,7 @@ void BfModule::ProcessMethod(BfMethodInstance* methodInstance, bool isInlineDup)
|
|||
BfTypeCode loweredTypeCode = BfTypeCode_None;
|
||||
BfTypeCode loweredTypeCode2 = BfTypeCode_None;
|
||||
paramVar->mResolvedType->GetLoweredType(BfTypeUsage_Parameter, &loweredTypeCode, &loweredTypeCode2);
|
||||
if (loweredTypeCode != BfTypeCode_None)
|
||||
if (loweredTypeCode2 != BfTypeCode_None)
|
||||
argIdx++;
|
||||
}
|
||||
else if (!paramVar->mResolvedType->IsValuelessType())
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue