llvm-project/llvm/lib/Bitcode/Reader
Duncan P. N. Exon Smith 5a5fd7b1b3 BitcodeReader: Only create one basic block for each blockaddress
Block address forward-references are implemented by creating a
`BasicBlock` ahead of time that gets inserted in the `Function` when
it's eventually encountered.

However, if the same blockaddress was used in two separate functions
that were parsed *before* the referenced function (and the blockaddress
was never used at global scope), two separate basic blocks would get
created, one of which would be forgotten creating invalid IR.

This commit changes the forward-reference logic to create only one basic
block (and always return the same blockaddress).

llvm-svn: 215805
2014-08-16 01:54:37 +00:00
..
BitReader.cpp Remove 'using std::errro_code' from lib. 2014-06-13 02:24:39 +00:00
BitcodeReader.cpp BitcodeReader: Only create one basic block for each blockaddress 2014-08-16 01:54:37 +00:00
BitcodeReader.h BitcodeReader: Only create one basic block for each blockaddress 2014-08-16 01:54:37 +00:00
BitstreamReader.cpp Replace some assert(0)'s with llvm_unreachable. 2014-06-18 05:05:13 +00:00
CMakeLists.txt BitstreamReader hasn't aged well. It's been hacked on by various people and 2013-01-19 18:19:39 +00:00
LLVMBuild.txt LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
Makefile