diff options
author | Chris Lattner <sabre@nondot.org> | 2007-05-18 04:02:46 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2007-05-18 04:02:46 +0000 |
commit | 9eeada9470448d4347c3583e617874b3744b3d16 (patch) | |
tree | 335ad903d2006b54a61fd10920f5475e137ad754 /llvm/lib/Bitcode/Reader/BitcodeReader.h | |
parent | 7aed8fccfdd6d187e5668c23c921196c7f0175d6 (diff) | |
download | bcm5719-llvm-9eeada9470448d4347c3583e617874b3744b3d16.tar.gz bcm5719-llvm-9eeada9470448d4347c3583e617874b3744b3d16.zip |
Fix PR1434 and test/Linker/link-archive.ll, this is a regression from 1.9.
llvm-svn: 37204
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.h')
-rw-r--r-- | llvm/lib/Bitcode/Reader/BitcodeReader.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/llvm/lib/Bitcode/Reader/BitcodeReader.h b/llvm/lib/Bitcode/Reader/BitcodeReader.h index 3e0f807d9d2..2f61b06c601 100644 --- a/llvm/lib/Bitcode/Reader/BitcodeReader.h +++ b/llvm/lib/Bitcode/Reader/BitcodeReader.h @@ -39,6 +39,10 @@ public: ++NumOperands; } + void clear() { + std::vector<Use>().swap(Uses); + } + Value *operator[](unsigned i) const { return getOperand(i); } Value *back() const { return Uses.back(); } @@ -111,8 +115,11 @@ public: BitcodeReader(MemoryBuffer *buffer) : Buffer(buffer), ErrorString(0) { HasReversedFunctionsWithBodies = false; } - ~BitcodeReader(); + ~BitcodeReader() { + FreeState(); + } + void FreeState(); /// releaseMemoryBuffer - This causes the reader to completely forget about /// the memory buffer it contains, which prevents the buffer from being @@ -124,6 +131,7 @@ public: virtual bool materializeFunction(Function *F, std::string *ErrInfo = 0); virtual Module *materializeModule(std::string *ErrInfo = 0); virtual void dematerializeFunction(Function *F); + virtual Module *releaseModule(std::string *ErrInfo = 0); bool Error(const char *Str) { ErrorString = Str; |