Delete NamedMDSymTable while destrucing Module.
Disable  copy ctor and operator= for NamedMDSymTable. Hide typedef that should be public.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93041 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/llvm/ValueSymbolTable.h b/include/llvm/ValueSymbolTable.h
index e5ea49f..060dba3 100644
--- a/include/llvm/ValueSymbolTable.h
+++ b/include/llvm/ValueSymbolTable.h
@@ -135,10 +135,11 @@
 class MDSymbolTable {
 /// @name Types
 /// @{
-public:
+private:
   /// @brief A mapping of names to metadata
   typedef StringMap<NamedMDNode*> MDMap;
 
+public:
   /// @brief An iterator over a ValueMap.
   typedef MDMap::iterator iterator;
 
@@ -150,6 +151,8 @@
 /// @{
 public:
 
+  MDSymbolTable(const MDNode &);             // DO NOT IMPLEMENT
+  void operator=(const MDSymbolTable &);     // DO NOT IMPLEMENT
   MDSymbolTable() : mmap(0) {}
   ~MDSymbolTable();
 
diff --git a/lib/VMCore/Module.cpp b/lib/VMCore/Module.cpp
index e25a295..03b1252 100644
--- a/lib/VMCore/Module.cpp
+++ b/lib/VMCore/Module.cpp
@@ -71,6 +71,7 @@
   NamedMDList.clear();
   delete ValSymTab;
   delete TypeSymTab;
+  delete NamedMDSymTab;
 }
 
 /// Target endian information...
diff --git a/lib/VMCore/ValueSymbolTable.cpp b/lib/VMCore/ValueSymbolTable.cpp
index 98b042f..d30a9d6 100644
--- a/lib/VMCore/ValueSymbolTable.cpp
+++ b/lib/VMCore/ValueSymbolTable.cpp
@@ -119,3 +119,5 @@
     //DEBUG(dbgs() << "\n");
   }
 }
+
+MDSymbolTable::~MDSymbolTable() { }