The system ranlib on darwin occasionally adds two extra newlines to the

end of files, breaking the CFE build.  As a gross hack around this,
ignore any trailing garbage on bytecode files.  Thanks to Brian for digging
in and identifying the problem.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16525 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2004-09-27 16:59:06 +00:00
parent 48f44cf5b3
commit 56bc894d06

View File

@ -2139,10 +2139,16 @@ void BytecodeReader::ParseBytecode(BufPtr Buf, unsigned Length,
error("Expected Module Block! Type:" + utostr(Type) + ", Size:"
+ utostr(Size));
}
if (At + Size != MemEnd) {
// It looks like the darwin ranlib program is broken, and adds trailing
// garbage to the end of some bytecode files. This hack allows the bc
// reader to ignore trailing garbage on bytecode files.
if (At + Size < MemEnd)
MemEnd = BlockEnd = At+Size;
if (At + Size != MemEnd)
error("Invalid Top Level Block Length! Type:" + utostr(Type)
+ ", Size:" + utostr(Size));
}
// Parse the module contents
this->ParseModule();