reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Derived Classes

tools/lld/COFF/Symbols.h
  128 class Defined : public Symbol {
  266 class LazyArchive : public Symbol {
  279 class LazyObject : public Symbol {
  288 class Undefined : public Symbol {

Declarations

tools/lld/COFF/Chunks.h
   40 class Symbol;
tools/lld/COFF/Config.h
   30 class Symbol;
tools/lld/COFF/InputFiles.h
   54 class Symbol;
tools/lld/COFF/SymbolTable.h
   34 class Symbol;

References

include/llvm/ADT/ArrayRef.h
  108         const ArrayRef<U *> &A,
  110            std::is_convertible<U *const *, T const *>::value>::type * = nullptr)
  127     ArrayRef(const std::vector<U *, A> &Vec,
  129                  std::is_convertible<U *const *, T const *>::value>::type* = 0)
include/llvm/ADT/DenseMapInfo.h
   39   static inline T* getEmptyKey() {
   41     Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
   45   static inline T* getTombstoneKey() {
   47     Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
   51   static unsigned getHashValue(const T *PtrVal) {
   56   static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
   56   static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
include/llvm/Support/Casting.h
   57   static inline bool doit(const From &Val) {
  104   static inline bool doit(const From *Val) {
  106     return isa_impl<To, From>::doit(*Val);
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  265   return cast_convert_val<X, Y*,
  266                           typename simplify_type<Y*>::SimpleType>::doit(Val);
  305 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  306 cast_or_null(Y *Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  366 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  367 dyn_cast_or_null(Y *Val) {
include/llvm/Support/PointerLikeTypeTraits.h
   56   static inline void *getAsVoidPointer(T *P) { return P; }
   57   static inline T *getFromVoidPointer(void *P) { return static_cast<T *>(P); }
   59   enum { NumLowBitsAvailable = detail::ConstantLog2<alignof(T)>::value };
   91   typedef PointerLikeTypeTraits<T *> NonConst;
   93   static inline const void *getAsVoidPointer(const T *P) {
   96   static inline const T *getFromVoidPointer(const void *P) {
tools/lld/COFF/Chunks.cpp
  459     Symbol *target = file->getSymbol(rel.SymbolTableIndex);
tools/lld/COFF/Chunks.h
  187                               std::random_access_iterator_tag, Symbol *> {
  198     Symbol *operator*() const { return file->getSymbol(I->SymbolTableIndex); }
tools/lld/COFF/Config.h
   43   Symbol *sym = nullptr;
   90   Symbol *entry = nullptr;
  116   std::vector<Symbol *> gcroot;
  128   Symbol *delayLoadHelper = nullptr;
  137   Symbol *sehTable = nullptr;
  138   Symbol *sehCount = nullptr;
tools/lld/COFF/Driver.cpp
  156   Symbol *s = symtab->findMangle(mangle(sym));
  506 Symbol *LinkerDriver::addUndefined(StringRef name) {
  507   Symbol *b = symtab->addUndefined(name);
  515 StringRef LinkerDriver::mangleMaybe(Symbol *s) {
  522   Symbol *mangled = symtab->findMangle(unmangled->getName());
  908 static void markAddrsig(Symbol *s) {
  923     ArrayRef<Symbol *> syms = obj->getSymbols();
  943       for (Symbol *s : syms)
 1805       Symbol *sym = symtab->find(from);
 1924     Symbol *sym = symtab->find(name);
tools/lld/COFF/Driver.h
  113   Symbol *addUndefined(StringRef sym);
  115   StringRef mangleMaybe(Symbol *s);
tools/lld/COFF/ICF.cpp
  153     Symbol *b1 = a->file->getSymbol(r1.SymbolTableIndex);
  154     Symbol *b2 = b->file->getSymbol(r2.SymbolTableIndex);
  179     Symbol *b1 = a->file->getSymbol(r1.SymbolTableIndex);
  180     Symbol *b2 = b->file->getSymbol(r2.SymbolTableIndex);
  274       for (Symbol *b : sc->symbols())
tools/lld/COFF/InputFiles.cpp
   78                                  Symbol *source, Symbol *target) {
   78                                  Symbol *source, Symbol *target) {
  379 Symbol *ObjFile::createRegular(COFFSymbolRef sym) {
  406   SmallVector<std::pair<Symbol *, uint32_t>, 8> weakAliases;
  423     } else if (Optional<Symbol *> optSym =
  461     Symbol *sym = kv.first;
  467 Symbol *ObjFile::createUndefined(COFFSymbolRef sym) {
  574 Optional<Symbol *> ObjFile::createDefined(
  881                          std::vector<Symbol *> &&symbols)
  902   std::vector<std::pair<Symbol *, bool>> comdat(obj->getComdatTable().size());
  910     Symbol *sym;
  919       Symbol *alias = symtab->addUndefined(saver.save(fallback));
tools/lld/COFF/InputFiles.h
  127   std::vector<Symbol *> symbols;
  134   explicit ObjFile(MemoryBufferRef m, std::vector<Symbol *> &&symbols)
  144   ArrayRef<Symbol *> getSymbols() { return symbols; }
  150   Symbol *getSymbol(uint32_t symbolIndex) {
  159   uint32_t addRangeThunkSymbol(Symbol *thunk) {
  256   llvm::Optional<Symbol *>
  261   Symbol *createRegular(COFFSymbolRef sym);
  262   Symbol *createUndefined(COFFSymbolRef sym);
  295   std::vector<Symbol *> symbols;
  311   Symbol *impSym = nullptr;
  312   Symbol *thunkSym = nullptr;
  343                        std::vector<Symbol *> &&symbols);
  345   ArrayRef<Symbol *> getSymbols() { return symbols; }
  353   std::vector<Symbol *> symbols;
tools/lld/COFF/LTO.cpp
  114 static void undefine(Symbol *s) { replaceSymbol<Undefined>(s, s->getName()); }
  119   std::vector<Symbol *> symBodies = f.getSymbols();
  127     Symbol *sym = symBodies[symNum];
tools/lld/COFF/MapFile.cpp
   51     for (Symbol *b : file->getSymbols())
tools/lld/COFF/MarkLive.cpp
   54   for (Symbol *b : config->gcroot)
   62     for (Symbol *b : sc->symbols())
tools/lld/COFF/SymbolTable.cpp
   66 static void forceLazy(Symbol *s) {
   69   case Symbol::Kind::LazyArchiveKind: {
   74   case Symbol::Kind::LazyObjectKind:
   86 static Symbol *getSymbol(SectionChunk *sc, uint32_t addr) {
   89   for (Symbol *s : sc->file->getSymbols()) {
  140     Symbol *sym;
  154       Symbol *sym = getSymbol(sc, r.VirtualAddress);
  193   Symbol *sym;
  226     Symbol *sym = i.second;
  241     Symbol *l = find(("__imp_" + name).str());
  257 bool SymbolTable::handleMinGWAutomaticImport(Symbol *sym, StringRef name) {
  311 reportProblemSymbols(const SmallPtrSetImpl<Symbol *> &undefs,
  312                      const DenseMap<Symbol *, Symbol *> *localImports,
  312                      const DenseMap<Symbol *, Symbol *> *localImports,
  321   for (Symbol *b : config->gcroot) {
  325       if (Symbol *imp = localImports->lookup(b))
  331   DenseMap<Symbol *, int> firstDiag;
  335     for (Symbol *sym : symbols) {
  349         if (Symbol *imp = localImports->lookup(sym))
  368   SmallPtrSet<Symbol *, 8> undefs;
  370     Symbol *sym = i.second;
  378       Symbol *imp = find(name.substr(strlen("__imp_")));
  395   SmallPtrSet<Symbol *, 8> undefs;
  396   DenseMap<Symbol *, Symbol *> localImports;
  396   DenseMap<Symbol *, Symbol *> localImports;
  399     Symbol *sym = i.second;
  427       Symbol *imp = find(name.substr(strlen("__imp_")));
  457 std::pair<Symbol *, bool> SymbolTable::insert(StringRef name) {
  459   Symbol *&sym = symMap[CachedHashStringRef(name)];
  469 std::pair<Symbol *, bool> SymbolTable::insert(StringRef name, InputFile *file) {
  470   std::pair<Symbol *, bool> result = insert(name);
  476 Symbol *SymbolTable::addUndefined(StringRef name, InputFile *f,
  478   Symbol *s;
  492   Symbol *s;
  507   Symbol *s;
  563 void SymbolTable::reportDuplicate(Symbol *existing, InputFile *newFile,
  586 Symbol *SymbolTable::addAbsolute(StringRef n, COFFSymbolRef sym) {
  587   Symbol *s;
  598 Symbol *SymbolTable::addAbsolute(StringRef n, uint64_t va) {
  599   Symbol *s;
  610 Symbol *SymbolTable::addSynthetic(StringRef n, Chunk *c) {
  611   Symbol *s;
  622 Symbol *SymbolTable::addRegular(InputFile *f, StringRef n,
  625   Symbol *s;
  639   Symbol *s;
  653 Symbol *SymbolTable::addCommon(InputFile *f, StringRef n, uint64_t size,
  655   Symbol *s;
  666 Symbol *SymbolTable::addImportData(StringRef n, ImportFile *f) {
  667   Symbol *s;
  680 Symbol *SymbolTable::addImportThunk(StringRef name, DefinedImportData *id,
  682   Symbol *s;
  696   Symbol *sym = findUnderscore(name);
  719 Symbol *SymbolTable::find(StringRef name) {
  723 Symbol *SymbolTable::findUnderscore(StringRef name) {
  731 std::vector<Symbol *> SymbolTable::getSymsWithPrefix(StringRef prefix) {
  732   std::vector<Symbol *> syms;
  744 Symbol *SymbolTable::findMangle(StringRef name) {
  745   if (Symbol *sym = find(name))
  753   std::vector<Symbol *> syms = getSymsWithPrefix(name);
  756     for (auto *s : syms)
  769   if (Symbol *s = findByPrefix(name + "@"))
  772   if (Symbol *s = findByPrefix("@" + name.substr(1) + "@"))
  775   if (Symbol *s = findByPrefix(name.substr(1) + "@@"))
  781 Symbol *SymbolTable::addUndefined(StringRef name) {
tools/lld/COFF/SymbolTable.h
   61   bool handleMinGWAutomaticImport(Symbol *sym, StringRef name);
   67   Symbol *find(StringRef name);
   68   Symbol *findUnderscore(StringRef name);
   74   Symbol *findMangle(StringRef name);
   83   Symbol *addUndefined(StringRef name);
   85   Symbol *addSynthetic(StringRef n, Chunk *c);
   86   Symbol *addAbsolute(StringRef n, uint64_t va);
   88   Symbol *addUndefined(StringRef name, InputFile *f, bool isWeakAlias);
   91   Symbol *addAbsolute(StringRef n, COFFSymbolRef s);
   92   Symbol *addRegular(InputFile *f, StringRef n,
   98   Symbol *addCommon(InputFile *f, StringRef n, uint64_t size,
  101   Symbol *addImportData(StringRef n, ImportFile *f);
  102   Symbol *addImportThunk(StringRef name, DefinedImportData *s,
  106   void reportDuplicate(Symbol *existing, InputFile *newFile,
  124   std::pair<Symbol *, bool> insert(StringRef name);
  126   std::pair<Symbol *, bool> insert(StringRef name, InputFile *f);
  128   std::vector<Symbol *> getSymsWithPrefix(StringRef prefix);
  130   llvm::DenseMap<llvm::CachedHashStringRef, Symbol *> symMap;
tools/lld/COFF/Symbols.cpp
   46 std::string toString(coff::Symbol &b) {
   96 void Symbol::replaceKeepingName(Symbol *other, size_t size) {
  131   for (Symbol *a = weakAlias; a; a = cast<Undefined>(a)->weakAlias)
tools/lld/COFF/Symbols.h
   25 std::string toString(coff::Symbol &b);
   74   void replaceKeepingName(Symbol *other, size_t size);
  128 class Defined : public Symbol {
  132   static bool classof(const Symbol *s) { return s->kind() <= LastDefinedKind; }
  154   static bool classof(const Symbol *s) {
  180   static bool classof(const Symbol *s) {
  200   static bool classof(const Symbol *s) {
  225   static bool classof(const Symbol *s) {
  248   static bool classof(const Symbol *s) {
  266 class LazyArchive : public Symbol {
  271   static bool classof(const Symbol *s) { return s->kind() == LazyArchiveKind; }
  279 class LazyObject : public Symbol {
  283   static bool classof(const Symbol *s) { return s->kind() == LazyObjectKind; }
  288 class Undefined : public Symbol {
  292   static bool classof(const Symbol *s) { return s->kind() == UndefinedKind; }
  298   Symbol *weakAlias = nullptr;
  318   static bool classof(const Symbol *s) {
  342   static bool classof(const Symbol *s) {
  365   static bool classof(const Symbol *s) {
  441 void replaceSymbol(Symbol *s, ArgT &&... arg) {
tools/lld/COFF/Writer.cpp
  423       Symbol *relocTarget = file->getSymbol(rel.SymbolTableIndex);
  508       Symbol *relocTarget = sc->file->getSymbol(rel.SymbolTableIndex);
 1086   case Symbol::DefinedAbsoluteKind:
 1090   case Symbol::DefinedSyntheticKind:
 1156       for (Symbol *b : file->getSymbols()) {
 1403   if (Symbol *sym = symtab->findUnderscore("_tls_used")) {
 1415   if (Symbol *sym = symtab->findUnderscore("_load_config_used")) {
 1501                                          Symbol *s) {
 1506   case Symbol::DefinedLocalImportKind:
 1507   case Symbol::DefinedImportDataKind:
 1510   case Symbol::DefinedCommonKind:
 1513   case Symbol::DefinedAbsoluteKind:
 1514   case Symbol::DefinedSyntheticKind:
 1518   case Symbol::LazyArchiveKind:
 1519   case Symbol::LazyObjectKind:
 1520   case Symbol::UndefinedKind:
 1525   case Symbol::DefinedImportThunkKind:
 1530   case Symbol::DefinedRegularKind: {
 1563       Symbol *ref = sc->file->getSymbol(reloc.SymbolTableIndex);
 1616   Symbol *flagSym = symtab->findUnderscore("__guard_flags");
 1646     ArrayRef<Symbol *> objSymbols = file->getSymbols();
 1653       if (Symbol *s = objSymbols[symIndex]) {
 1672   Symbol *t = symtab->findUnderscore(tableSym);
 1673   Symbol *c = symtab->findUnderscore(countSym);
 1699   Symbol *headSym = symtab->findUnderscore("__RUNTIME_PSEUDO_RELOC_LIST__");
 1700   Symbol *endSym = symtab->findUnderscore("__RUNTIME_PSEUDO_RELOC_LIST_END__");
 1720   Symbol *ctorListSym = symtab->findUnderscore("__CTOR_LIST__");
 1721   Symbol *dtorListSym = symtab->findUnderscore("__DTOR_LIST__");
usr/include/c++/7.4.0/type_traits
 1983     { typedef _Up     type; };