mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-08 11:38:21 +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())
|
else if (type->IsRef())
|
||||||
{
|
{
|
||||||
BfRefType* refType = (BfRefType*)type;
|
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";
|
name += "U3mut";
|
||||||
Mangle(mangleContext, name, refType->mElementType);
|
Mangle(mangleContext, name, refType->mElementType);
|
||||||
return;
|
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))
|
else if ((refType->mRefKind == BfRefType::RefKind_Out) && (!mangleContext.mCCompat))
|
||||||
{
|
{
|
||||||
name += "U3out";
|
name += "U3out";
|
||||||
|
@ -1649,14 +1647,12 @@ void BfMSMangler::Mangle(MangleContext& mangleContext, StringImpl& name, BfType*
|
||||||
name += "A";
|
name += "A";
|
||||||
if (mangleContext.mIs64Bit)
|
if (mangleContext.mIs64Bit)
|
||||||
name += "E";
|
name += "E";
|
||||||
if (isConst)
|
if ((isConst) || (refType->mRefKind == BfRefType::RefKind_In))
|
||||||
name += "B";
|
name += "B";
|
||||||
else
|
else
|
||||||
name += "A";
|
name += "A";
|
||||||
if (refType->mRefKind == BfRefType::RefKind_Mut)
|
if (refType->mRefKind == BfRefType::RefKind_Mut)
|
||||||
name += "mut$";
|
name += "mut$";
|
||||||
else if (refType->mRefKind == BfRefType::RefKind_In)
|
|
||||||
name += "in$";
|
|
||||||
else if (refType->mRefKind == BfRefType::RefKind_Out)
|
else if (refType->mRefKind == BfRefType::RefKind_Out)
|
||||||
name += "out$";
|
name += "out$";
|
||||||
Mangle(mangleContext, name, refType->mElementType);
|
Mangle(mangleContext, name, refType->mElementType);
|
||||||
|
|
|
@ -19,6 +19,9 @@ namespace Tests
|
||||||
[LinkName(.CPP)]
|
[LinkName(.CPP)]
|
||||||
[return: MangleConst]
|
[return: MangleConst]
|
||||||
public extern ref float MethodA2([MangleConst]ref float val);
|
public extern ref float MethodA2([MangleConst]ref float val);
|
||||||
|
[LinkName(.CPP)]
|
||||||
|
[return: MangleConst]
|
||||||
|
public extern ref float MethodA3(in float val);
|
||||||
}
|
}
|
||||||
|
|
||||||
[CRepr]
|
[CRepr]
|
||||||
|
@ -399,6 +402,7 @@ namespace Tests
|
||||||
Test.Assert(StructA.sVal == 1234);
|
Test.Assert(StructA.sVal == 1234);
|
||||||
float f = 123;
|
float f = 123;
|
||||||
Test.Assert(sa0.MethodA2(ref f) == 123);
|
Test.Assert(sa0.MethodA2(ref f) == 123);
|
||||||
|
Test.Assert(sa0.MethodA3(f) == 123);
|
||||||
|
|
||||||
StartTest("Func0");
|
StartTest("Func0");
|
||||||
Test.Assert(Func0(12, 34) == 3412);
|
Test.Assert(Func0(12, 34) == 3412);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue