Thread CGFunctionInfo construction through CodeGenTypes.
- Inefficient & leaks memory currently, will be cleaned up subsequently.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63567 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CGObjCGNU.cpp b/lib/CodeGen/CGObjCGNU.cpp
index e6ae6f3..1ce28bf 100644
--- a/lib/CodeGen/CGObjCGNU.cpp
+++ b/lib/CodeGen/CGObjCGNU.cpp
@@ -311,7 +311,8 @@
ActualArgs.push_back(std::make_pair(RValue::get(cmd),
CGF.getContext().getObjCSelType()));
ActualArgs.insert(ActualArgs.end(), CallArgs.begin(), CallArgs.end());
- return CGF.EmitCall(CGFunctionInfo(ResultType, ActualArgs), imp, ActualArgs);
+ return CGF.EmitCall(CGM.getTypes().getFunctionInfo(ResultType, ActualArgs),
+ imp, ActualArgs);
}
/// Generate code for a message send expression.
@@ -358,7 +359,8 @@
ActualArgs.push_back(std::make_pair(RValue::get(cmd),
CGF.getContext().getObjCSelType()));
ActualArgs.insert(ActualArgs.end(), CallArgs.begin(), CallArgs.end());
- return CGF.EmitCall(CGFunctionInfo(ResultType, ActualArgs), imp, ActualArgs);
+ return CGF.EmitCall(CGM.getTypes().getFunctionInfo(ResultType, ActualArgs),
+ imp, ActualArgs);
}
/// Generates a MethodList. Used in construction of a objc_class and
@@ -969,9 +971,9 @@
std::string MethodName = OMD->getSelector().getAsString();
bool isClassMethod = !OMD->isInstanceMethod();
+ CodeGenTypes &Types = CGM.getTypes();
const llvm::FunctionType *MethodTy =
- CGM.getTypes().GetFunctionType(CGFunctionInfo(OMD, CGM.getContext()),
- OMD->isVariadic());
+ Types.GetFunctionType(Types.getFunctionInfo(OMD), OMD->isVariadic());
std::string FunctionName = SymbolNameForMethod(ClassName, CategoryName,
MethodName, isClassMethod);