diff --git a/include/llvm/Support/StringPool.h b/include/llvm/Support/StringPool.h index 7ac2b147c34..46087e4d1fe 100644 --- a/include/llvm/Support/StringPool.h +++ b/include/llvm/Support/StringPool.h @@ -70,6 +70,10 @@ namespace llvm { /// reference-counted pointer to it. No additional memory is allocated if /// the string already exists in the pool. inline PooledStringPtr intern(const char *Str); + + /// empty - Checks whether the pool is empty. Returns true if so. + /// + inline bool empty() const { return InternTable.empty(); } }; /// PooledStringPtr - A pointer to an interned string. Use operator bool to diff --git a/lib/VMCore/Function.cpp b/lib/VMCore/Function.cpp index 18effea5091..856385bb008 100644 --- a/lib/VMCore/Function.cpp +++ b/lib/VMCore/Function.cpp @@ -414,6 +414,10 @@ void Function::clearCollector() { if (CollectorNames->empty()) { delete CollectorNames; CollectorNames = 0; + if (CollectorNamePool->empty()) { + delete CollectorNamePool; + CollectorNamePool = 0; + } } } }