diff --git a/include/llvm/DerivedTypes.h b/include/llvm/DerivedTypes.h index 25b5978914e..9e79339f4a2 100644 --- a/include/llvm/DerivedTypes.h +++ b/include/llvm/DerivedTypes.h @@ -19,7 +19,6 @@ #define LLVM_DERIVED_TYPES_H #include "llvm/Type.h" -#include "llvm/ADT/ArrayRef.h" #include "llvm/Support/DataTypes.h" namespace llvm { @@ -34,6 +33,7 @@ class VectorValType; class IntegerValType; class APInt; class LLVMContext; +template class ArrayRef; class DerivedType : public Type { friend class Type; @@ -158,10 +158,8 @@ public: /// FunctionType::get - Create a FunctionType taking no parameters. /// - static FunctionType *get(const Type *Result, bool isVarArg) { - return get(Result, ArrayRef(), isVarArg); - } - + static FunctionType *get(const Type *Result, bool isVarArg); + /// isValidReturnType - Return true if the specified type is valid as a return /// type. static bool isValidReturnType(const Type *RetTy); @@ -239,10 +237,8 @@ public: /// StructType::get - Create an empty structure type. /// - static StructType *get(LLVMContext &Context, bool isPacked=false) { - return get(Context, llvm::ArrayRef(), isPacked); - } - + static StructType *get(LLVMContext &Context, bool isPacked=false); + /// StructType::get - This static method is a convenience method for /// creating structure types by specifying the elements as arguments. /// Note that this method always returns a non-packed struct. To get diff --git a/lib/VMCore/Type.cpp b/lib/VMCore/Type.cpp index 5188e5f0f83..566bb28c4a4 100644 --- a/lib/VMCore/Type.cpp +++ b/lib/VMCore/Type.cpp @@ -832,6 +832,9 @@ FunctionValType FunctionValType::get(const FunctionType *FT) { return FunctionValType(FT->getReturnType(), ParamTypes, FT->isVarArg()); } +FunctionType *FunctionType::get(const Type *Result, bool isVarArg) { + return get(Result, ArrayRef(), isVarArg); +} // FunctionType::get - The factory function for the FunctionType class... FunctionType *FunctionType::get(const Type *ReturnType, @@ -908,9 +911,14 @@ bool VectorType::isValidElementType(const Type *ElemTy) { } //===----------------------------------------------------------------------===// -// Struct Type Factory... +// Struct Type Factory. // +StructType *StructType::get(LLVMContext &Context, bool isPacked) { + return get(Context, llvm::ArrayRef(), isPacked); +} + + StructType *StructType::get(LLVMContext &Context, ArrayRef ETypes, bool isPacked) {