Assert that ConstantArrays are created with correctly-typed elements.
authorJeffrey Yasskin <jyasskin@google.com>
Wed, 30 Sep 2009 21:08:08 +0000 (21:08 +0000)
committerJeffrey Yasskin <jyasskin@google.com>
Wed, 30 Sep 2009 21:08:08 +0000 (21:08 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83168 91177308-0d34-0410-b5e6-96231b3b80d8

lib/VMCore/Constants.cpp

index eb7e7c05fbf7fa89b4e3d47bbdac004fd8e2ffeb..2da95b01b04fe8e051eb0eedfee40d4fa972e36c 100644 (file)
@@ -482,6 +482,10 @@ ConstantArray::ConstantArray(const ArrayType *T,
 
 Constant *ConstantArray::get(const ArrayType *Ty, 
                              const std::vector<Constant*> &V) {
+  for (unsigned i = 0, e = V.size(); i != e; ++i) {
+    assert(V[i]->getType() == Ty->getElementType() &&
+           "Wrong type in array element initializer");
+  }
   LLVMContextImpl *pImpl = Ty->getContext().pImpl;
   // If this is an all-zero array, return a ConstantAggregateZero object
   if (!V.empty()) {
@@ -2140,4 +2144,3 @@ void ConstantExpr::replaceUsesOfWithOnConstant(Value *From, Value *ToV,
   // Delete the old constant!
   destroyConstant();
 }
-