1//===- OutputSymbolTable.h ------------------------------------------------===// 2// 3// The MCLinker Project 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9#ifndef OUTPUTSYMBOLTABLE_H 10#define OUTPUTSYMBOLTABLE_H 11#include <llvm/ADT/StringRef.h> 12#include "mcld/LD/SymbolTableIF.h" 13#ifdef ENABLE_UNITTEST 14#include <gtest.h> 15#endif 16 17namespace mcld 18{ 19 20class LDSymbol; 21 22/** \class OutputSymbolTable 23 * \brief Output symbol table, for MCLDOutput. 24 * 25 * \see 26 */ 27class OutputSymbolTable : public SymbolTableIF 28{ 29 /* draft. */ 30 friend class SymbolTableFactory; 31private: 32 OutputSymbolTable(StrSymPool &pStrSymPool, 33 size_t pNumOfSymbols, 34 StringTable &pEntireStringTable, 35 StringTable &pDynamicStringTable); 36private: 37 virtual void doInsertSymbol(LDSymbol *); 38 virtual void doMerge(const SymbolTableIF &); 39}; 40 41} // namespace of mcld 42 43#endif 44