Distinguish more carefully between free functions and C++ instance methods
in the ABI arrangement, and leave a hook behind so that we can easily tweak CCs on platforms that use different CCs by default for C++ instance methods. llvm-svn: 159894
This commit is contained in:
@@ -241,9 +241,9 @@ public:
|
||||
Params.push_back(Ctx.getPointerDiffType()->getCanonicalTypeUnqualified());
|
||||
Params.push_back(Ctx.BoolTy);
|
||||
llvm::FunctionType *FTy =
|
||||
Types.GetFunctionType(Types.arrangeFunctionType(IdType, Params,
|
||||
FunctionType::ExtInfo(),
|
||||
RequiredArgs::All));
|
||||
Types.GetFunctionType(Types.arrangeLLVMFunctionInfo(IdType, Params,
|
||||
FunctionType::ExtInfo(),
|
||||
RequiredArgs::All));
|
||||
return CGM.CreateRuntimeFunction(FTy, "objc_getProperty");
|
||||
}
|
||||
|
||||
@@ -261,9 +261,9 @@ public:
|
||||
Params.push_back(Ctx.BoolTy);
|
||||
Params.push_back(Ctx.BoolTy);
|
||||
llvm::FunctionType *FTy =
|
||||
Types.GetFunctionType(Types.arrangeFunctionType(Ctx.VoidTy, Params,
|
||||
FunctionType::ExtInfo(),
|
||||
RequiredArgs::All));
|
||||
Types.GetFunctionType(Types.arrangeLLVMFunctionInfo(Ctx.VoidTy, Params,
|
||||
FunctionType::ExtInfo(),
|
||||
RequiredArgs::All));
|
||||
return CGM.CreateRuntimeFunction(FTy, "objc_setProperty");
|
||||
}
|
||||
|
||||
@@ -287,9 +287,9 @@ public:
|
||||
Params.push_back(IdType);
|
||||
Params.push_back(Ctx.getPointerDiffType()->getCanonicalTypeUnqualified());
|
||||
llvm::FunctionType *FTy =
|
||||
Types.GetFunctionType(Types.arrangeFunctionType(Ctx.VoidTy, Params,
|
||||
FunctionType::ExtInfo(),
|
||||
RequiredArgs::All));
|
||||
Types.GetFunctionType(Types.arrangeLLVMFunctionInfo(Ctx.VoidTy, Params,
|
||||
FunctionType::ExtInfo(),
|
||||
RequiredArgs::All));
|
||||
const char *name;
|
||||
if (atomic && copy)
|
||||
name = "objc_setProperty_atomic_copy";
|
||||
@@ -314,9 +314,9 @@ public:
|
||||
Params.push_back(Ctx.BoolTy);
|
||||
Params.push_back(Ctx.BoolTy);
|
||||
llvm::FunctionType *FTy =
|
||||
Types.GetFunctionType(Types.arrangeFunctionType(Ctx.VoidTy, Params,
|
||||
FunctionType::ExtInfo(),
|
||||
RequiredArgs::All));
|
||||
Types.GetFunctionType(Types.arrangeLLVMFunctionInfo(Ctx.VoidTy, Params,
|
||||
FunctionType::ExtInfo(),
|
||||
RequiredArgs::All));
|
||||
return CGM.CreateRuntimeFunction(FTy, "objc_copyStruct");
|
||||
}
|
||||
|
||||
@@ -333,9 +333,9 @@ public:
|
||||
Params.push_back(Ctx.VoidPtrTy);
|
||||
Params.push_back(Ctx.VoidPtrTy);
|
||||
llvm::FunctionType *FTy =
|
||||
Types.GetFunctionType(Types.arrangeFunctionType(Ctx.VoidTy, Params,
|
||||
FunctionType::ExtInfo(),
|
||||
RequiredArgs::All));
|
||||
Types.GetFunctionType(Types.arrangeLLVMFunctionInfo(Ctx.VoidTy, Params,
|
||||
FunctionType::ExtInfo(),
|
||||
RequiredArgs::All));
|
||||
return CGM.CreateRuntimeFunction(FTy, "objc_copyCppObjectAtomic");
|
||||
}
|
||||
|
||||
@@ -346,7 +346,7 @@ public:
|
||||
SmallVector<CanQualType,1> Params;
|
||||
Params.push_back(Ctx.getCanonicalParamType(Ctx.getObjCIdType()));
|
||||
llvm::FunctionType *FTy =
|
||||
Types.GetFunctionType(Types.arrangeFunctionType(Ctx.VoidTy, Params,
|
||||
Types.GetFunctionType(Types.arrangeLLVMFunctionInfo(Ctx.VoidTy, Params,
|
||||
FunctionType::ExtInfo(),
|
||||
RequiredArgs::All));
|
||||
return CGM.CreateRuntimeFunction(FTy, "objc_enumerationMutation");
|
||||
|
||||
Reference in New Issue
Block a user