From af76d0ea0bc15e87a32aad9c86808eba34026f20 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Tue, 15 Apr 2003 16:09:31 +0000 Subject: [PATCH] Fix bug: Assember2003-04-15-ConstantInitAssertion.llx git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5777 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/AsmParser/llvmAsmParser.y | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/AsmParser/llvmAsmParser.y b/lib/AsmParser/llvmAsmParser.y index f2135a7ad25..fdc4213436e 100644 --- a/lib/AsmParser/llvmAsmParser.y +++ b/lib/AsmParser/llvmAsmParser.y @@ -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; } -- 2.50.1