diff options
author | Chris Lattner <sabre@nondot.org> | 2007-02-07 06:06:24 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2007-02-07 06:06:24 +0000 |
commit | 1e348549d930f1a3e636dcb2c78bad95636daec2 (patch) | |
tree | 3a57d9dfbe2a97f63b121a46dc4d7a194d42235e | |
parent | f29a09d6272265e90362d5dfba201c4ed6dcf6d5 (diff) |
Make SymbolTable::insert, SymbolTable::remove and SymbolTable::rename private.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33987 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/ValueSymbolTable.h | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/include/llvm/ValueSymbolTable.h b/include/llvm/ValueSymbolTable.h index edc44901b5..501e04f592 100644 --- a/include/llvm/ValueSymbolTable.h +++ b/include/llvm/ValueSymbolTable.h @@ -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 @@ public: /// 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 |