[llvm-commits] CVS: llvm/include/llvm/ValueSymbolTable.h

Chris Lattner sabre at nondot.org
Tue Feb 6 22:06:40 PST 2007



Changes in directory llvm/include/llvm:

ValueSymbolTable.h updated: 1.4 -> 1.5
---
Log message:

Make SymbolTable::insert, SymbolTable::remove and SymbolTable::rename private.


---
Diffs of the changes:  (+21 -3)

 ValueSymbolTable.h |   24 +++++++++++++++++++++---
 1 files changed, 21 insertions(+), 3 deletions(-)


Index: llvm/include/llvm/ValueSymbolTable.h
diff -u llvm/include/llvm/ValueSymbolTable.h:1.4 llvm/include/llvm/ValueSymbolTable.h:1.5
--- llvm/include/llvm/ValueSymbolTable.h:1.4	Mon Feb  5 14:47:19 2007
+++ llvm/include/llvm/ValueSymbolTable.h	Wed Feb  7 00:06:24 2007
@@ -20,13 +20,30 @@
 #include <map>
 
 namespace llvm {
-
+  template<typename ValueSubClass, typename ItemParentClass,
+           typename SymTabClass, typename SubClass>
+        class SymbolTableListTraits;
+  template<typename NodeTy> struct ilist_traits;
+  class BasicBlock;
+  class Function;
+  class Module;
+  
 /// This class provides a symbol table of name/value pairs. It is essentially
 /// a std::map<std::string,Value*> but has a controlled interface provided by
 /// LLVM as well as ensuring uniqueness of names.
 ///
 class ValueSymbolTable {
-
+  friend class Value;
+  friend class SymbolTableListTraits<Argument, Function, Function,
+                                     ilist_traits<Argument> >;
+  friend class SymbolTableListTraits<BasicBlock, Function, Function,
+                                     ilist_traits<BasicBlock> >;
+  friend class SymbolTableListTraits<Instruction, BasicBlock, Function,
+                                     ilist_traits<Instruction> >;
+  friend class SymbolTableListTraits<Function, Module, Module, 
+                                     ilist_traits<Function> >;
+  friend class SymbolTableListTraits<GlobalVariable, Module, Module, 
+                                     ilist_traits<GlobalVariable> >;
 /// @name Types
 /// @{
 public:
@@ -108,7 +125,8 @@
   /// This method will strip the symbol table of its names.
   /// @brief Strip the symbol table.
   bool strip();
-
+  
+private:
   /// This method adds the provided value \p N to the symbol table.  The Value
   /// must have a name which is used to place the value in the symbol table. 
   /// @brief Add a named value to the symbol table






More information about the llvm-commits mailing list