mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-08 19:48:20 +02:00
Made 'in' mangle as 'const&'
This commit is contained in:
parent
cf9890349d
commit
52a8aca30d
2 changed files with 12 additions and 12 deletions
|
@ -535,18 +535,16 @@ void BfGNUMangler::Mangle(MangleContext& mangleContext, StringImpl& name, BfType
|
|||
else if (type->IsRef())
|
||||
{
|
||||
BfRefType* refType = (BfRefType*)type;
|
||||
if ((refType->mRefKind == BfRefType::RefKind_Mut) && (!mangleContext.mCCompat))
|
||||
if (refType->mRefKind == BfRefType::RefKind_In)
|
||||
{
|
||||
isConst = true;
|
||||
}
|
||||
else if ((refType->mRefKind == BfRefType::RefKind_Mut) && (!mangleContext.mCCompat))
|
||||
{
|
||||
name += "U3mut";
|
||||
Mangle(mangleContext, name, refType->mElementType);
|
||||
return;
|
||||
}
|
||||
else if ((refType->mRefKind == BfRefType::RefKind_In) && (!mangleContext.mCCompat))
|
||||
{
|
||||
name += "U2in";
|
||||
Mangle(mangleContext, name, refType->mElementType);
|
||||
return;
|
||||
}
|
||||
else if ((refType->mRefKind == BfRefType::RefKind_Out) && (!mangleContext.mCCompat))
|
||||
{
|
||||
name += "U3out";
|
||||
|
@ -1649,14 +1647,12 @@ void BfMSMangler::Mangle(MangleContext& mangleContext, StringImpl& name, BfType*
|
|||
name += "A";
|
||||
if (mangleContext.mIs64Bit)
|
||||
name += "E";
|
||||
if (isConst)
|
||||
if ((isConst) || (refType->mRefKind == BfRefType::RefKind_In))
|
||||
name += "B";
|
||||
else
|
||||
name += "A";
|
||||
if (refType->mRefKind == BfRefType::RefKind_Mut)
|
||||
name += "mut$";
|
||||
else if (refType->mRefKind == BfRefType::RefKind_In)
|
||||
name += "in$";
|
||||
else if (refType->mRefKind == BfRefType::RefKind_Out)
|
||||
name += "out$";
|
||||
Mangle(mangleContext, name, refType->mElementType);
|
||||
|
|
|
@ -19,6 +19,9 @@ namespace Tests
|
|||
[LinkName(.CPP)]
|
||||
[return: MangleConst]
|
||||
public extern ref float MethodA2([MangleConst]ref float val);
|
||||
[LinkName(.CPP)]
|
||||
[return: MangleConst]
|
||||
public extern ref float MethodA3(in float val);
|
||||
}
|
||||
|
||||
[CRepr]
|
||||
|
@ -399,6 +402,7 @@ namespace Tests
|
|||
Test.Assert(StructA.sVal == 1234);
|
||||
float f = 123;
|
||||
Test.Assert(sa0.MethodA2(ref f) == 123);
|
||||
Test.Assert(sa0.MethodA3(f) == 123);
|
||||
|
||||
StartTest("Func0");
|
||||
Test.Assert(Func0(12, 34) == 3412);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue