ConstantArray::get and ConstantStruct::get now just return pointers to
'Constant', instead of specific subclass pointers. In the future, these will
return an instance of ConstantAggregateZero if all of the inputs are zeros.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11467 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/llvm/Constants.h b/include/llvm/Constants.h
index 7e72879..0921cbb 100644
--- a/include/llvm/Constants.h
+++ b/include/llvm/Constants.h
@@ -321,8 +321,8 @@
ConstantArray(const ArrayType *T, const std::vector<Constant*> &Val);
public:
/// get() - Static factory methods - Return objects of the specified value
- static ConstantArray *get(const ArrayType *T, const std::vector<Constant*> &);
- static ConstantArray *get(const std::string &Initializer);
+ static Constant *get(const ArrayType *T, const std::vector<Constant*> &);
+ static Constant *get(const std::string &Initializer);
/// getType - Specialize the getType() method to always return an ArrayType,
/// which reduces the amount of casting needed in parts of the compiler.
@@ -383,8 +383,7 @@
ConstantStruct(const StructType *T, const std::vector<Constant*> &Val);
public:
/// get() - Static factory methods - Return objects of the specified value
- static ConstantStruct *get(const StructType *T,
- const std::vector<Constant*> &V);
+ static Constant *get(const StructType *T, const std::vector<Constant*> &V);
/// getType() specialization - Reduce amount of casting...
inline const StructType *getType() const {
diff --git a/lib/VMCore/Constants.cpp b/lib/VMCore/Constants.cpp
index 06f23c1..e13a1da 100644
--- a/lib/VMCore/Constants.cpp
+++ b/lib/VMCore/Constants.cpp
@@ -786,7 +786,7 @@
static ValueMap<std::vector<Constant*>, ArrayType,
ConstantArray> ArrayConstants;
-ConstantArray *ConstantArray::get(const ArrayType *Ty,
+Constant *ConstantArray::get(const ArrayType *Ty,
const std::vector<Constant*> &V) {
return ArrayConstants.getOrCreate(Ty, V);
}
@@ -802,7 +802,7 @@
// contain the specified string. A null terminator is added to the specified
// string so that it may be used in a natural way...
//
-ConstantArray *ConstantArray::get(const std::string &Str) {
+Constant *ConstantArray::get(const std::string &Str) {
std::vector<Constant*> ElementVals;
for (unsigned i = 0; i < Str.length(); ++i)
@@ -866,8 +866,8 @@
static ValueMap<std::vector<Constant*>, StructType,
ConstantStruct> StructConstants;
-ConstantStruct *ConstantStruct::get(const StructType *Ty,
- const std::vector<Constant*> &V) {
+Constant *ConstantStruct::get(const StructType *Ty,
+ const std::vector<Constant*> &V) {
return StructConstants.getOrCreate(Ty, V);
}