Fix a bug in bitstream writer handling abbrevs, add value symtab

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36373 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2007-04-23 20:34:46 +00:00
parent 56c42ef3e4
commit 73f3fd775f
2 changed files with 12 additions and 6 deletions
+6 -5
View File
@@ -147,12 +147,8 @@ public:
EmitVBR(CodeLen, bitc::CodeLenWidth);
FlushToWord();
BlockScope.push_back(Block(CurCodeSize, Out.size()/4));
// Delete all abbrevs.
for (unsigned i = 0, e = CurAbbrevs.size(); i != e; ++i)
delete CurAbbrevs[i];
BlockScope.back().PrevAbbrevs.swap(CurAbbrevs);
// Emit a placeholder, which will be replaced when the block is popped.
Emit(0, bitc::BlockSizeWidth);
@@ -161,6 +157,11 @@ public:
void ExitBlock() {
assert(!BlockScope.empty() && "Block scope imbalance!");
// Delete all abbrevs.
for (unsigned i = 0, e = CurAbbrevs.size(); i != e; ++i)
delete CurAbbrevs[i];
const Block &B = BlockScope.back();
// Block tail: