diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-06-16 20:03:39 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-06-16 20:03:39 +0000 |
commit | c6afe0d4e9e0da1398a71c50bd88fbd2c700c025 (patch) | |
tree | ddac8df1fe074402f6884491d5f9777a208fd7e9 /llvm/test/Bitcode/padding.test | |
parent | 76b080ac4d53bc44dca3efd0f39a5dbbac6fb792 (diff) | |
download | bcm5719-llvm-c6afe0d4e9e0da1398a71c50bd88fbd2c700c025.tar.gz bcm5719-llvm-c6afe0d4e9e0da1398a71c50bd88fbd2c700c025.zip |
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
Diffstat (limited to 'llvm/test/Bitcode/padding.test')
-rw-r--r-- | llvm/test/Bitcode/padding.test | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/llvm/test/Bitcode/padding.test b/llvm/test/Bitcode/padding.test index 72fe42ea47e..63b2fec2b59 100644 --- a/llvm/test/Bitcode/padding.test +++ b/llvm/test/Bitcode/padding.test @@ -1,7 +1,7 @@ Test that both llvm-dis (uses a data streamer) and opt (no data streamer) -handle a .bc file padded with '\n' at the end. +handle a .bc file with any padding. -This files can be produced under a peculiar situation: +A file padded with '\n' can be produced under a peculiar situation: * A .bc is produced os OS X, but without a darwin triple, so it has no wrapper. @@ -9,5 +9,10 @@ This files can be produced under a peculiar situation: * ranlib is ran on that archive. It will pad the members to make them multiple of 8 bytes. +and there is no reason to not handle the general case. + RUN: llvm-dis -disable-output %p/Inputs/padding.bc RUN: opt -disable-output %p/Inputs/padding.bc + +RUN: llvm-dis -disable-output %p/Inputs/padding-garbage.bc +RUN: opt -disable-output %p/Inputs/padding-garbage.bc |