Fix bug: Assember2003-04-15-ConstantInitAssertion.llx

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5777 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2003-04-15 16:09:31 +00:00
parent 9fa01f2fa5
commit af76d0ea0b

View File

@ -919,8 +919,15 @@ ConstVal: Types '[' ConstVector ']' { // Nonempty unsized arr
if (STy == 0)
ThrowException("Cannot make struct constant with type: '" +
(*$1)->getDescription() + "'!");
// FIXME: TODO: Check to see that the constants are compatible with the type
// initializer!
// Check to ensure that constants are compatible with the type initializer!
for (unsigned i = 0, e = $3->size(); i != e; ++i)
if ((*$3)[i]->getType() != STy->getElementTypes()[i])
ThrowException("Expected type '" +
STy->getElementTypes()[i]->getDescription() +
"' for element #" + utostr(i) +
" of structure initializer!");
$$ = ConstantStruct::get(STy, *$3);
delete $1; delete $3;
}