From f4ef8db7cd71edabe424f9d5c7d3ee23ef9924d5 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sun, 7 Aug 2011 04:18:48 +0000 Subject: [PATCH] strengthen up an assertion: you can't create a constant struct with an opaque struct type, it doesn't make sense. This should resolve PR10473. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137028 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/VMCore/Constants.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/VMCore/Constants.cpp b/lib/VMCore/Constants.cpp index 9d0f7cc3c8e..2f22cda5ba4 100644 --- a/lib/VMCore/Constants.cpp +++ b/lib/VMCore/Constants.cpp @@ -652,7 +652,7 @@ ConstantStruct::ConstantStruct(StructType *T, ArrayRef V) : Constant(T, ConstantStructVal, OperandTraits::op_end(this) - V.size(), V.size()) { - assert((T->isOpaque() || V.size() == T->getNumElements()) && + assert(V.size() == T->getNumElements() && "Invalid initializer vector for constant structure"); for (unsigned i = 0, e = V.size(); i != e; ++i) assert((T->isOpaque() || V[i]->getType() == T->getElementType(i)) && @@ -672,7 +672,7 @@ Constant *ConstantStruct::get(StructType *ST, ArrayRef V) { return ConstantAggregateZero::get(ST); } -Constant* ConstantStruct::get(StructType *T, ...) { +Constant *ConstantStruct::get(StructType *T, ...) { va_list ap; SmallVector Values; va_start(ap, T);