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

Merge pull request #1015 from EinBurgbauer/compiler-fix

attempt to fix explicit thiscall crash
This commit is contained in:
Brian Fiete 2021-05-20 06:17:38 -04:00 committed by GitHub
commit 664909e0e3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1209,6 +1209,7 @@ void BfMethodInstance::GetIRFunctionInfo(BfModule* module, BfIRType& returnType,
returnType = module->mBfIRBuilder->MapType(mReturnType); returnType = module->mBfIRBuilder->MapType(mReturnType);
} }
bool hasExplicitThis = false;
for (int paramIdx = -1; paramIdx < GetParamCount(); paramIdx++) for (int paramIdx = -1; paramIdx < GetParamCount(); paramIdx++)
{ {
BfType* checkType = NULL; BfType* checkType = NULL;
@ -1223,13 +1224,23 @@ void BfMethodInstance::GetIRFunctionInfo(BfModule* module, BfIRType& returnType,
else else
{ {
if (HasExplicitThis()) if (HasExplicitThis())
{
checkType = GetParamType(0); checkType = GetParamType(0);
hasExplicitThis = true;
}
else else
checkType = GetOwner(); checkType = GetOwner();
} }
} }
else else
{ {
if (hasExplicitThis)
{
// We already looked at this
hasExplicitThis = false;
continue;
}
checkType = GetParamType(paramIdx); checkType = GetParamType(paramIdx);
} }