diff --git a/llvm/include/llvm/Constants.h b/llvm/include/llvm/Constants.h index e01e2a2823c7fbae0ea7376a4794d54724a050ae..58def86fc84c038dfc6303b8fd19767827644c76 100644 --- a/llvm/include/llvm/Constants.h +++ b/llvm/include/llvm/Constants.h @@ -248,6 +248,11 @@ protected: public: /// get() - Static factory methods - Return objects of the specified value static Constant *get(const ArrayType *T, const std::vector &); + static Constant *get(const ArrayType *T, + Constant*const*Vals, unsigned NumVals) { + // FIXME: make this the primary ctor method. + return get(T, std::vector(Vals, Vals+NumVals)); + } /// This method constructs a ConstantArray and initializes it with a text /// string. The default behavior (AddNull==true) causes a null terminator to @@ -308,8 +313,13 @@ public: /// get() - Static factory methods - Return objects of the specified value /// static Constant *get(const StructType *T, const std::vector &V); - static Constant *get(const std::vector &V, bool packed = false); - + static Constant *get(const std::vector &V, bool Packed = false); + static Constant *get(Constant*const* Vals, unsigned NumVals, + bool Packed = false) { + // FIXME: make this the primary ctor method. + return get(std::vector(Vals, Vals+NumVals), Packed); + } + /// getType() specialization - Reduce amount of casting... /// inline const StructType *getType() const { @@ -347,7 +357,11 @@ public: /// get() - Static factory methods - Return objects of the specified value static Constant *get(const VectorType *T, const std::vector &); static Constant *get(const std::vector &V); - + static Constant *get(Constant*const* Vals, unsigned NumVals) { + // FIXME: make this the primary ctor method. + return get(std::vector(Vals, Vals+NumVals)); + } + /// getType - Specialize the getType() method to always return an VectorType, /// which reduces the amount of casting needed in parts of the compiler. /// @@ -578,6 +592,8 @@ public: Constant* const *IdxList, unsigned NumIdx); static Constant *getGetElementPtr(Constant *C, Value* const *IdxList, unsigned NumIdx); + + // FIXME: Remove these. static Constant *getGetElementPtr(Constant *C, const std::vector &IdxList) { return getGetElementPtr(C, &IdxList[0], IdxList.size());