Add assertion descriptiosn on type mismatches when creating
authorAlkis Evlogimenos <alkis@evlogimenos.com>
Fri, 10 Sep 2004 04:16:59 +0000 (04:16 +0000)
committerAlkis Evlogimenos <alkis@evlogimenos.com>
Fri, 10 Sep 2004 04:16:59 +0000 (04:16 +0000)
ConstantArray and ConstantPacked objects.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16261 91177308-0d34-0410-b5e6-96231b3b80d8

lib/VMCore/Constants.cpp

index 77c34296aa81e0d6ebd78c1fd374977363eefccc..8148f44b0331546a122f36f45be3f045673dd911 100644 (file)
@@ -247,9 +247,10 @@ ConstantArray::ConstantArray(const ArrayType *T,
                              const std::vector<Constant*> &V) : Constant(T) {
   Operands.reserve(V.size());
   for (unsigned i = 0, e = V.size(); i != e; ++i) {
-    assert(V[i]->getType() == T->getElementType() ||
-           (T->isAbstract() &&
-            V[i]->getType()->getTypeID() == T->getElementType()->getTypeID()));
+    assert((V[i]->getType() == T->getElementType() ||
+            (T->isAbstract() &&
+             V[i]->getType()->getTypeID() == T->getElementType()->getTypeID())) &&
+           "Initializer for array element doesn't match array element type!");
     Operands.push_back(Use(V[i], this));
   }
 }
@@ -273,9 +274,10 @@ ConstantPacked::ConstantPacked(const PackedType *T,
                                const std::vector<Constant*> &V) : Constant(T) {
   Operands.reserve(V.size());
   for (unsigned i = 0, e = V.size(); i != e; ++i) {
-    assert(V[i]->getType() == T->getElementType() ||
-           (T->isAbstract() &&
-            V[i]->getType()->getTypeID() == T->getElementType()->getTypeID()));
+    assert((V[i]->getType() == T->getElementType() ||
+            (T->isAbstract() &&
+             V[i]->getType()->getTypeID() == T->getElementType()->getTypeID())) &&
+           "Initializer for packed element doesn't match packed element type!");
     Operands.push_back(Use(V[i], this));
   }
 }