diff options
Diffstat (limited to 'lib/Bytecode')
-rw-r--r-- | lib/Bytecode/Reader/ConstantReader.cpp | 9 | ||||
-rw-r--r-- | lib/Bytecode/Writer/ConstantWriter.cpp | 4 |
2 files changed, 4 insertions, 9 deletions
diff --git a/lib/Bytecode/Reader/ConstantReader.cpp b/lib/Bytecode/Reader/ConstantReader.cpp index 671afd2066..78da567f01 100644 --- a/lib/Bytecode/Reader/ConstantReader.cpp +++ b/lib/Bytecode/Reader/ConstantReader.cpp @@ -55,7 +55,7 @@ const Type *BytecodeParser::parseTypeConstant(const uchar *&Buf, const Type *ElementType = getType(ElTyp); if (ElementType == 0) return failure(Val); - int NumElements; + unsigned NumElements; if (read_vbr(Buf, EndBuf, NumElements)) return failure(Val); BCR_TRACE(5, "Array Type Constant #" << ElTyp << " size=" @@ -239,11 +239,7 @@ bool BytecodeParser::parseConstantValue(const uchar *&Buf, const uchar *EndBuf, case Type::ArrayTyID: { const ArrayType *AT = cast<const ArrayType>(Ty); - unsigned NumElements; - if (AT->isSized()) // Sized array, # elements stored in type! - NumElements = (unsigned)AT->getNumElements(); - else // Unsized array, # elements stored in stream! - if (read_vbr(Buf, EndBuf, NumElements)) return failure(true); + unsigned NumElements = AT->getNumElements(); vector<Constant*> Elements; while (NumElements--) { // Read all of the elements of the constant. @@ -320,6 +316,7 @@ bool BytecodeParser::parseConstantValue(const uchar *&Buf, const uchar *EndBuf, break; } default: + BCR_TRACE(5, "UNKNOWN Pointer Constant Type!\n"); return failure(true); } break; diff --git a/lib/Bytecode/Writer/ConstantWriter.cpp b/lib/Bytecode/Writer/ConstantWriter.cpp index 0700a2e63e..bcfa976573 100644 --- a/lib/Bytecode/Writer/ConstantWriter.cpp +++ b/lib/Bytecode/Writer/ConstantWriter.cpp @@ -123,9 +123,7 @@ bool BytecodeWriter::outputConstant(const Constant *CPV) { case Type::ArrayTyID: { const ConstantArray *CPA = cast<const ConstantArray>(CPV); unsigned size = CPA->getValues().size(); - if (!((const ArrayType *)CPA->getType())->isSized()) - output_vbr(size, Out); // Not for sized arrays!!! - + assert(size == cast<ArrayType>(CPA->getType())->getNumElements() && "ConstantArray out of whack!"); for (unsigned i = 0; i < size; i++) { int Slot = Table.getValSlot(CPA->getOperand(i)); assert(Slot != -1 && "Constant used but not available!!"); |