Skip to content

Commit 944cfe3

Browse files
committed
Avoid explicit indirect return pointers for ARM64.
1 parent ee4f946 commit 944cfe3

File tree

2 files changed

+27
-37
lines changed

2 files changed

+27
-37
lines changed

src/CppParser/Bindings/CSharp/arm64-apple-darwin/CppSharp.CppParser.cs

+24-36
Original file line numberDiff line numberDiff line change
@@ -965,7 +965,7 @@ public unsafe partial class BlockCommandComment : global::CppSharp.Parser.AST.Bl
965965
internal static extern __IntPtr dtor(__IntPtr __instance);
966966

967967
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST19BlockCommandComment12getArgumentsEj", CallingConvention = __CallingConvention.Cdecl)]
968-
internal static extern void GetArguments(__IntPtr @return, __IntPtr __instance, uint i);
968+
internal static extern global::CppSharp.Parser.AST.BlockCommandComment.Argument.__Internal GetArguments(__IntPtr __instance, uint i);
969969

970970
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST19BlockCommandComment12addArgumentsERNS2_8ArgumentE", CallingConvention = __CallingConvention.Cdecl)]
971971
internal static extern void AddArguments(__IntPtr __instance, __IntPtr s);
@@ -1208,8 +1208,7 @@ internal protected override void Dispose(bool disposing, bool callNativeDtor)
12081208

12091209
public global::CppSharp.Parser.AST.BlockCommandComment.Argument GetArguments(uint i)
12101210
{
1211-
var ___ret = new global::CppSharp.Parser.AST.BlockCommandComment.Argument.__Internal();
1212-
__Internal.GetArguments(new IntPtr(&___ret), __Instance, i);
1211+
var ___ret = __Internal.GetArguments(__Instance, i);
12131212
var _____ret = global::CppSharp.Parser.AST.BlockCommandComment.Argument.__CreateInstance(___ret);
12141213
global::CppSharp.Parser.AST.BlockCommandComment.Argument.__Internal.dtor(new __IntPtr(&___ret));
12151214
return _____ret;
@@ -2000,7 +1999,7 @@ public unsafe partial class InlineCommandComment : global::CppSharp.Parser.AST.I
20001999
internal static extern __IntPtr dtor(__IntPtr __instance);
20012000

20022001
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST20InlineCommandComment12getArgumentsEj", CallingConvention = __CallingConvention.Cdecl)]
2003-
internal static extern void GetArguments(__IntPtr @return, __IntPtr __instance, uint i);
2002+
internal static extern global::CppSharp.Parser.AST.InlineCommandComment.Argument.__Internal GetArguments(__IntPtr __instance, uint i);
20042003

20052004
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST20InlineCommandComment12addArgumentsERNS2_8ArgumentE", CallingConvention = __CallingConvention.Cdecl)]
20062005
internal static extern void AddArguments(__IntPtr __instance, __IntPtr s);
@@ -2243,8 +2242,7 @@ internal protected override void Dispose(bool disposing, bool callNativeDtor)
22432242

22442243
public global::CppSharp.Parser.AST.InlineCommandComment.Argument GetArguments(uint i)
22452244
{
2246-
var ___ret = new global::CppSharp.Parser.AST.InlineCommandComment.Argument.__Internal();
2247-
__Internal.GetArguments(new IntPtr(&___ret), __Instance, i);
2245+
var ___ret = __Internal.GetArguments(__Instance, i);
22482246
var _____ret = global::CppSharp.Parser.AST.InlineCommandComment.Argument.__CreateInstance(___ret);
22492247
global::CppSharp.Parser.AST.InlineCommandComment.Argument.__Internal.dtor(new __IntPtr(&___ret));
22502248
return _____ret;
@@ -2423,7 +2421,7 @@ public unsafe partial class HTMLStartTagComment : global::CppSharp.Parser.AST.HT
24232421
internal static extern __IntPtr dtor(__IntPtr __instance);
24242422

24252423
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST19HTMLStartTagComment13getAttributesEj", CallingConvention = __CallingConvention.Cdecl)]
2426-
internal static extern void GetAttributes(__IntPtr @return, __IntPtr __instance, uint i);
2424+
internal static extern global::CppSharp.Parser.AST.HTMLStartTagComment.Attribute.__Internal GetAttributes(__IntPtr __instance, uint i);
24272425

24282426
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST19HTMLStartTagComment13addAttributesERNS2_9AttributeE", CallingConvention = __CallingConvention.Cdecl)]
24292427
internal static extern void AddAttributes(__IntPtr __instance, __IntPtr s);
@@ -2686,8 +2684,7 @@ internal protected override void Dispose(bool disposing, bool callNativeDtor)
26862684

26872685
public global::CppSharp.Parser.AST.HTMLStartTagComment.Attribute GetAttributes(uint i)
26882686
{
2689-
var ___ret = new global::CppSharp.Parser.AST.HTMLStartTagComment.Attribute.__Internal();
2690-
__Internal.GetAttributes(new IntPtr(&___ret), __Instance, i);
2687+
var ___ret = __Internal.GetAttributes(__Instance, i);
26912688
var _____ret = global::CppSharp.Parser.AST.HTMLStartTagComment.Attribute.__CreateInstance(___ret);
26922689
global::CppSharp.Parser.AST.HTMLStartTagComment.Attribute.__Internal.dtor(new __IntPtr(&___ret));
26932690
return _____ret;
@@ -5201,7 +5198,7 @@ public unsafe partial class TemplateSpecializationType : global::CppSharp.Parser
52015198
internal static extern __IntPtr dtor(__IntPtr __instance);
52025199

52035200
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST26TemplateSpecializationType12getArgumentsEj", CallingConvention = __CallingConvention.Cdecl)]
5204-
internal static extern void GetArguments(__IntPtr @return, __IntPtr __instance, uint i);
5201+
internal static extern global::CppSharp.Parser.AST.TemplateArgument.__Internal GetArguments(__IntPtr __instance, uint i);
52055202

52065203
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST26TemplateSpecializationType12addArgumentsERNS1_16TemplateArgumentE", CallingConvention = __CallingConvention.Cdecl)]
52075204
internal static extern void AddArguments(__IntPtr __instance, __IntPtr s);
@@ -5294,8 +5291,7 @@ internal protected override void Dispose(bool disposing, bool callNativeDtor)
52945291

52955292
public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i)
52965293
{
5297-
var ___ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal();
5298-
__Internal.GetArguments(new IntPtr(&___ret), __Instance, i);
5294+
var ___ret = __Internal.GetArguments(__Instance, i);
52995295
return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(___ret);
53005296
}
53015297

@@ -5378,7 +5374,7 @@ public unsafe partial class DependentTemplateSpecializationType : global::CppSha
53785374
internal static extern __IntPtr dtor(__IntPtr __instance);
53795375

53805376
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType12getArgumentsEj", CallingConvention = __CallingConvention.Cdecl)]
5381-
internal static extern void GetArguments(__IntPtr @return, __IntPtr __instance, uint i);
5377+
internal static extern global::CppSharp.Parser.AST.TemplateArgument.__Internal GetArguments(__IntPtr __instance, uint i);
53825378

53835379
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType12addArgumentsERNS1_16TemplateArgumentE", CallingConvention = __CallingConvention.Cdecl)]
53845380
internal static extern void AddArguments(__IntPtr __instance, __IntPtr s);
@@ -5471,8 +5467,7 @@ internal protected override void Dispose(bool disposing, bool callNativeDtor)
54715467

54725468
public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i)
54735469
{
5474-
var ___ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal();
5475-
__Internal.GetArguments(new IntPtr(&___ret), __Instance, i);
5470+
var ___ret = __Internal.GetArguments(__Instance, i);
54765471
return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(___ret);
54775472
}
54785473

@@ -12814,7 +12809,7 @@ public partial struct __Internal
1281412809
internal static extern __IntPtr dtor(__IntPtr __instance);
1281512810

1281612811
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST11ClassLayout11getVFTablesEj", CallingConvention = __CallingConvention.Cdecl)]
12817-
internal static extern void GetVFTables(__IntPtr @return, __IntPtr __instance, uint i);
12812+
internal static extern global::CppSharp.Parser.AST.VFTableInfo.__Internal GetVFTables(__IntPtr __instance, uint i);
1281812813

1281912814
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST11ClassLayout11addVFTablesERNS1_11VFTableInfoE", CallingConvention = __CallingConvention.Cdecl)]
1282012815
internal static extern void AddVFTables(__IntPtr __instance, __IntPtr s);
@@ -12823,7 +12818,7 @@ public partial struct __Internal
1282312818
internal static extern void ClearVFTables(__IntPtr __instance);
1282412819

1282512820
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST11ClassLayout9getFieldsEj", CallingConvention = __CallingConvention.Cdecl)]
12826-
internal static extern void GetFields(__IntPtr @return, __IntPtr __instance, uint i);
12821+
internal static extern global::CppSharp.Parser.AST.LayoutField.__Internal GetFields(__IntPtr __instance, uint i);
1282712822

1282812823
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST11ClassLayout9addFieldsERNS1_11LayoutFieldE", CallingConvention = __CallingConvention.Cdecl)]
1282912824
internal static extern void AddFields(__IntPtr __instance, __IntPtr s);
@@ -12832,7 +12827,7 @@ public partial struct __Internal
1283212827
internal static extern void ClearFields(__IntPtr __instance);
1283312828

1283412829
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST11ClassLayout8getBasesEj", CallingConvention = __CallingConvention.Cdecl)]
12835-
internal static extern void GetBases(__IntPtr @return, __IntPtr __instance, uint i);
12830+
internal static extern global::CppSharp.Parser.AST.LayoutBase.__Internal GetBases(__IntPtr __instance, uint i);
1283612831

1283712832
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST11ClassLayout8addBasesERNS1_10LayoutBaseE", CallingConvention = __CallingConvention.Cdecl)]
1283812833
internal static extern void AddBases(__IntPtr __instance, __IntPtr s);
@@ -12954,8 +12949,7 @@ internal protected virtual void Dispose(bool disposing, bool callNativeDtor)
1295412949

1295512950
public global::CppSharp.Parser.AST.VFTableInfo GetVFTables(uint i)
1295612951
{
12957-
var ___ret = new global::CppSharp.Parser.AST.VFTableInfo.__Internal();
12958-
__Internal.GetVFTables(new IntPtr(&___ret), __Instance, i);
12952+
var ___ret = __Internal.GetVFTables(__Instance, i);
1295912953
var _____ret = global::CppSharp.Parser.AST.VFTableInfo.__CreateInstance(___ret);
1296012954
global::CppSharp.Parser.AST.VFTableInfo.__Internal.dtor(new __IntPtr(&___ret));
1296112955
return _____ret;
@@ -12976,8 +12970,7 @@ public void ClearVFTables()
1297612970

1297712971
public global::CppSharp.Parser.AST.LayoutField GetFields(uint i)
1297812972
{
12979-
var ___ret = new global::CppSharp.Parser.AST.LayoutField.__Internal();
12980-
__Internal.GetFields(new IntPtr(&___ret), __Instance, i);
12973+
var ___ret = __Internal.GetFields(__Instance, i);
1298112974
var _____ret = global::CppSharp.Parser.AST.LayoutField.__CreateInstance(___ret);
1298212975
global::CppSharp.Parser.AST.LayoutField.__Internal.dtor(new __IntPtr(&___ret));
1298312976
return _____ret;
@@ -12998,8 +12991,7 @@ public void ClearFields()
1299812991

1299912992
public global::CppSharp.Parser.AST.LayoutBase GetBases(uint i)
1300012993
{
13001-
var ___ret = new global::CppSharp.Parser.AST.LayoutBase.__Internal();
13002-
__Internal.GetBases(new IntPtr(&___ret), __Instance, i);
12994+
var ___ret = __Internal.GetBases(__Instance, i);
1300312995
var _____ret = global::CppSharp.Parser.AST.LayoutBase.__CreateInstance(___ret);
1300412996
global::CppSharp.Parser.AST.LayoutBase.__Internal.dtor(new __IntPtr(&___ret));
1300512997
return _____ret;
@@ -15396,7 +15388,7 @@ public unsafe partial class ClassTemplateSpecialization : global::CppSharp.Parse
1539615388
internal static extern __IntPtr dtor(__IntPtr __instance);
1539715389

1539815390
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization12getArgumentsEj", CallingConvention = __CallingConvention.Cdecl)]
15399-
internal static extern void GetArguments(__IntPtr @return, __IntPtr __instance, uint i);
15391+
internal static extern global::CppSharp.Parser.AST.TemplateArgument.__Internal GetArguments(__IntPtr __instance, uint i);
1540015392

1540115393
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization12addArgumentsERNS1_16TemplateArgumentE", CallingConvention = __CallingConvention.Cdecl)]
1540215394
internal static extern void AddArguments(__IntPtr __instance, __IntPtr s);
@@ -15489,8 +15481,7 @@ internal protected override void Dispose(bool disposing, bool callNativeDtor)
1548915481

1549015482
public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i)
1549115483
{
15492-
var ___ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal();
15493-
__Internal.GetArguments(new IntPtr(&___ret), __Instance, i);
15484+
var ___ret = __Internal.GetArguments(__Instance, i);
1549415485
return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(___ret);
1549515486
}
1549615487

@@ -16079,7 +16070,7 @@ public partial struct __Internal
1607916070
internal static extern __IntPtr dtor(__IntPtr __instance);
1608016071

1608116072
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization12getArgumentsEj", CallingConvention = __CallingConvention.Cdecl)]
16082-
internal static extern void GetArguments(__IntPtr @return, __IntPtr __instance, uint i);
16073+
internal static extern global::CppSharp.Parser.AST.TemplateArgument.__Internal GetArguments(__IntPtr __instance, uint i);
1608316074

1608416075
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization12addArgumentsERNS1_16TemplateArgumentE", CallingConvention = __CallingConvention.Cdecl)]
1608516076
internal static extern void AddArguments(__IntPtr __instance, __IntPtr s);
@@ -16195,8 +16186,7 @@ internal protected virtual void Dispose(bool disposing, bool callNativeDtor)
1619516186

1619616187
public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i)
1619716188
{
16198-
var ___ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal();
16199-
__Internal.GetArguments(new IntPtr(&___ret), __Instance, i);
16189+
var ___ret = __Internal.GetArguments(__Instance, i);
1620016190
return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(___ret);
1620116191
}
1620216192

@@ -16578,7 +16568,7 @@ public unsafe partial class VarTemplateSpecialization : global::CppSharp.Parser.
1657816568
internal static extern __IntPtr dtor(__IntPtr __instance);
1657916569

1658016570
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST25VarTemplateSpecialization12getArgumentsEj", CallingConvention = __CallingConvention.Cdecl)]
16581-
internal static extern void GetArguments(__IntPtr @return, __IntPtr __instance, uint i);
16571+
internal static extern global::CppSharp.Parser.AST.TemplateArgument.__Internal GetArguments(__IntPtr __instance, uint i);
1658216572

1658316573
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST25VarTemplateSpecialization12addArgumentsERNS1_16TemplateArgumentE", CallingConvention = __CallingConvention.Cdecl)]
1658416574
internal static extern void AddArguments(__IntPtr __instance, __IntPtr s);
@@ -16671,8 +16661,7 @@ internal protected override void Dispose(bool disposing, bool callNativeDtor)
1667116661

1667216662
public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i)
1667316663
{
16674-
var ___ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal();
16675-
__Internal.GetArguments(new IntPtr(&___ret), __Instance, i);
16664+
var ___ret = __Internal.GetArguments(__Instance, i);
1667616665
return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(___ret);
1667716666
}
1667816667

@@ -49486,7 +49475,7 @@ public partial struct __Internal
4948649475
internal static extern __IntPtr dtor(__IntPtr __instance);
4948749476

4948849477
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser12ParserResult14getDiagnosticsEj", CallingConvention = __CallingConvention.Cdecl)]
49489-
internal static extern void GetDiagnostics(__IntPtr @return, __IntPtr __instance, uint i);
49478+
internal static extern global::CppSharp.Parser.ParserDiagnostic.__Internal GetDiagnostics(__IntPtr __instance, uint i);
4949049479

4949149480
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser12ParserResult14addDiagnosticsERNS0_16ParserDiagnosticE", CallingConvention = __CallingConvention.Cdecl)]
4949249481
internal static extern void AddDiagnostics(__IntPtr __instance, __IntPtr s);
@@ -49614,8 +49603,7 @@ internal protected virtual void Dispose(bool disposing, bool callNativeDtor)
4961449603

4961549604
public global::CppSharp.Parser.ParserDiagnostic GetDiagnostics(uint i)
4961649605
{
49617-
var ___ret = new global::CppSharp.Parser.ParserDiagnostic.__Internal();
49618-
__Internal.GetDiagnostics(new IntPtr(&___ret), __Instance, i);
49606+
var ___ret = __Internal.GetDiagnostics(__Instance, i);
4961949607
var _____ret = global::CppSharp.Parser.ParserDiagnostic.__CreateInstance(___ret);
4962049608
global::CppSharp.Parser.ParserDiagnostic.__Internal.dtor(new __IntPtr(&___ret));
4962149609
return _____ret;

src/Generator/Passes/CheckAbiParameters.cs

+3-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,9 @@ public override bool VisitFunctionDecl(Function function)
3939
returnTypeDecl.IsPOD &&
4040
returnTypeDecl.Layout.Size <= 8);
4141

42-
if (isReturnIndirect)
42+
var triple = Context.ParserOptions.TargetTriple;
43+
var isArm64 = triple.Contains("arm64") || triple.Contains("aarch64");
44+
if (isReturnIndirect && !isArm64)
4345
{
4446
var indirectParam = new Parameter()
4547
{

0 commit comments

Comments
 (0)