Skip to content

Commit 0657c77

Browse files
authored
Merge pull request #9434 from hjyamauchi/pr111597-rebranch
Add arrangeCXXMethodCall to the CodeGenABITypes interface.
2 parents f7178a3 + dc62dcb commit 0657c77

File tree

2 files changed

+36
-13
lines changed

2 files changed

+36
-13
lines changed

clang/include/clang/CodeGen/CodeGenABITypes.h

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,25 @@ const CGFunctionInfo &arrangeCXXMethodType(CodeGenModule &CGM,
7676
const FunctionProtoType *FTP,
7777
const CXXMethodDecl *MD);
7878

79-
const CGFunctionInfo &arrangeFreeFunctionCall(CodeGenModule &CGM,
80-
CanQualType returnType,
81-
ArrayRef<CanQualType> argTypes,
82-
FunctionType::ExtInfo info,
83-
RequiredArgs args);
79+
const CGFunctionInfo &
80+
arrangeCXXMethodCall(CodeGenModule &CGM, CanQualType returnType,
81+
ArrayRef<CanQualType> argTypes, FunctionType::ExtInfo info,
82+
ArrayRef<FunctionProtoType::ExtParameterInfo> paramInfos,
83+
RequiredArgs args);
84+
85+
const CGFunctionInfo &arrangeFreeFunctionCall(
86+
CodeGenModule &CGM, CanQualType returnType, ArrayRef<CanQualType> argTypes,
87+
FunctionType::ExtInfo info,
88+
ArrayRef<FunctionProtoType::ExtParameterInfo> paramInfos,
89+
RequiredArgs args);
90+
91+
// An overload with an empty `paramInfos`
92+
inline const CGFunctionInfo &
93+
arrangeFreeFunctionCall(CodeGenModule &CGM, CanQualType returnType,
94+
ArrayRef<CanQualType> argTypes,
95+
FunctionType::ExtInfo info, RequiredArgs args) {
96+
return arrangeFreeFunctionCall(CGM, returnType, argTypes, info, {}, args);
97+
}
8498

8599
/// Returns the implicit arguments to add to a complete, non-delegating C++
86100
/// constructor call.

clang/lib/CodeGen/CodeGenABITypes.cpp

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -59,14 +59,23 @@ CodeGen::arrangeCXXMethodType(CodeGenModule &CGM,
5959
return CGM.getTypes().arrangeCXXMethodType(RD, FTP, MD);
6060
}
6161

62-
const CGFunctionInfo &
63-
CodeGen::arrangeFreeFunctionCall(CodeGenModule &CGM,
64-
CanQualType returnType,
65-
ArrayRef<CanQualType> argTypes,
66-
FunctionType::ExtInfo info,
67-
RequiredArgs args) {
68-
return CGM.getTypes().arrangeLLVMFunctionInfo(returnType, FnInfoOpts::None,
69-
argTypes, info, {}, args);
62+
const CGFunctionInfo &CodeGen::arrangeCXXMethodCall(
63+
CodeGenModule &CGM, CanQualType returnType, ArrayRef<CanQualType> argTypes,
64+
FunctionType::ExtInfo info,
65+
ArrayRef<FunctionProtoType::ExtParameterInfo> paramInfos,
66+
RequiredArgs args) {
67+
return CGM.getTypes().arrangeLLVMFunctionInfo(
68+
returnType, FnInfoOpts::IsInstanceMethod, argTypes, info, paramInfos,
69+
args);
70+
}
71+
72+
const CGFunctionInfo &CodeGen::arrangeFreeFunctionCall(
73+
CodeGenModule &CGM, CanQualType returnType, ArrayRef<CanQualType> argTypes,
74+
FunctionType::ExtInfo info,
75+
ArrayRef<FunctionProtoType::ExtParameterInfo> paramInfos,
76+
RequiredArgs args) {
77+
return CGM.getTypes().arrangeLLVMFunctionInfo(
78+
returnType, FnInfoOpts::None, argTypes, info, paramInfos, args);
7079
}
7180

7281
ImplicitCXXConstructorArgs

0 commit comments

Comments
 (0)