Improve handling of end of file in the bitcode reader.
authorRafael Espindola <rafael.espindola@gmail.com>
Tue, 16 Jun 2015 20:03:39 +0000 (20:03 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Tue, 16 Jun 2015 20:03:39 +0000 (20:03 +0000)
commitc6afe0d4e9e0da1398a71c50bd88fbd2c700c025
treeddac8df1fe074402f6884491d5f9777a208fd7e9
parent76b080ac4d53bc44dca3efd0f39a5dbbac6fb792
Improve handling of end of file in the bitcode reader.

Before this patch the bitcode reader would read a module from a file
that contained in order:

* Any number of non MODULE_BLOCK sub blocks.
* One MODULE_BLOCK
* Any number of non MODULE_BLOCK sub blocks.
* 4 '\n' characters to handle OS X's ranlib.

Since we support lazy reading of modules, any information that is relevant
for the module has to be in the MODULE_BLOCK or before it. We don't gain
anything from checking what is after.

This patch then changes the reader to stop once the MODULE_BLOCK has been
successfully parsed.

This avoids the ugly special case for .bc files in an archive and makes it
easier to embed bitcode files.

llvm-svn: 239845
llvm/lib/Bitcode/Reader/BitcodeReader.cpp
llvm/test/Bitcode/Inputs/padding-garbage.bc [new file with mode: 0644]
llvm/test/Bitcode/padding.test