diff --git a/include/llvm/ValueSymbolTable.h b/include/llvm/ValueSymbolTable.h index edc44901b5d..501e04f5925 100644 --- a/include/llvm/ValueSymbolTable.h +++ b/include/llvm/ValueSymbolTable.h @@ -20,13 +20,30 @@ #include namespace llvm { - + template + class SymbolTableListTraits; + template 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 but has a controlled interface provided by /// LLVM as well as ensuring uniqueness of names. /// class ValueSymbolTable { - + friend class Value; + friend class SymbolTableListTraits >; + friend class SymbolTableListTraits >; + friend class SymbolTableListTraits >; + friend class SymbolTableListTraits >; + friend class SymbolTableListTraits >; /// @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