diff --git a/lib/CodeGen/CGCall.cpp b/lib/CodeGen/CGCall.cpp
index 08d5da3..7fc3176 100644
--- a/lib/CodeGen/CGCall.cpp
+++ b/lib/CodeGen/CGCall.cpp
@@ -874,17 +874,11 @@
 
 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()) {
@@ -944,7 +938,7 @@
     }
   }
 
-  return llvm::FunctionType::get(ResultType, ArgTys, IsVariadic);
+  return llvm::FunctionType::get(ResultType, ArgTys, FI.isVariadic());
 }
 
 bool CodeGenModule::ReturnTypeUsesSret(QualType RetTy) {
diff --git a/lib/CodeGen/CodeGenTypes.h b/lib/CodeGen/CodeGenTypes.h
index 46ca79a..eb42445 100644
--- a/lib/CodeGen/CodeGenTypes.h
+++ b/lib/CodeGen/CodeGenTypes.h
@@ -143,15 +143,8 @@
   /// 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
