const llvm::FunctionType *
CodeGenTypes::GetFunctionType(const CGFunctionInfo &FI) {
- return GetFunctionType(FI.argtypes_begin(), FI.argtypes_end(),
- FI.isVariadic());
-}
-
-const llvm::FunctionType *
-CodeGenTypes::GetFunctionType(ArgTypeIterator begin, ArgTypeIterator end,
- bool IsVariadic) {
std::vector<const llvm::Type*> ArgTys;
const llvm::Type *ResultType = 0;
+ ArgTypeIterator begin = FI.argtypes_begin(), end = FI.argtypes_end();
QualType RetTy = *begin;
ABIArgInfo RetAI = getABIReturnInfo(RetTy, *this);
switch (RetAI.getKind()) {
}
}
- return llvm::FunctionType::get(ResultType, ArgTys, IsVariadic);
+ return llvm::FunctionType::get(ResultType, ArgTys, FI.isVariadic());
}
bool CodeGenModule::ReturnTypeUsesSret(QualType RetTy) {
/// memory representation is usually i8 or i32, depending on the target.
const llvm::Type *ConvertTypeForMem(QualType T);
- /// GetFunctionType - Get the LLVM function type from Info.
+ /// GetFunctionType - Get the LLVM function type for \arg Info.
const llvm::FunctionType *GetFunctionType(const CGFunctionInfo &Info);
-
- /// GetFunctionType - Get the LLVM function type for the given types
- /// and variadicness.
- // FIXME: Do we even need IsVariadic here?
- const llvm::FunctionType *GetFunctionType(ArgTypeIterator begin,
- ArgTypeIterator end,
- bool IsVariadic);
const CGRecordLayout *getCGRecordLayout(const TagDecl*) const;
/// Returns a StructType representing an Objective-C object