1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 11:38:21 +02:00

Sized array mangle fixes

This commit is contained in:
Brian Fiete 2021-11-03 07:46:54 -07:00
parent 5674bf80c0
commit 613aa116f4

View file

@ -584,10 +584,22 @@ void BfGNUMangler::Mangle(MangleContext& mangleContext, StringImpl& name, BfType
}
else if (type->IsSizedArray())
{
BfSizedArrayType* arrayType = (BfSizedArrayType*)type;
name += StrFormat("A%d_");
Mangle(mangleContext, name, arrayType->mElementType);
return;
if (type->IsUnknownSizedArrayType())
{
BfUnknownSizedArrayType* arrayType = (BfUnknownSizedArrayType*)type;
name += "A_";
Mangle(mangleContext, name, arrayType->mElementType);
name += "_";
Mangle(mangleContext, name, arrayType->mElementCountSource);
return;
}
else
{
BfSizedArrayType* arrayType = (BfSizedArrayType*)type;
name += StrFormat("A%d_", arrayType->mElementCount);
Mangle(mangleContext, name, arrayType->mElementType);
return;
}
}
else if (type->IsMethodRef())
{
@ -1714,7 +1726,7 @@ void BfMSMangler::Mangle(MangleContext& mangleContext, StringImpl& name, BfType*
name += "?$_ARRAY@";
Mangle(mangleContext, name, arrType->mElementType);
MangleConst(mangleContext, name, arrType->mSize);
MangleConst(mangleContext, name, arrType->mElementCount);
name += '@';
}
}