1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 11:42:57 +01:00

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

llvm-svn: 33987
This commit is contained in:
Chris Lattner 2007-02-07 06:06:24 +00:00
parent 7881ec420f
commit a78272e94d

View File

@ -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:
@ -109,6 +126,7 @@ public:
/// @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