Lines Matching defs:symbols

68 // .gnu.warning.SYMBOL are treated as warning symbols for the given symbol
309 // Add symbols in File to the symbol table.
520 ArrayRef<Elf_Sym> eSyms = CHECK(obj.symbols(symtabSec), this);
641 typename ELFT::SymRange symbols = this->getELFSyms<ELFT>();
642 if (sec.sh_info >= symbols.size())
644 const typename ELFT::Sym &sym = symbols[sec.sh_info];
692 // This is for --just-symbols.
694 // --just-symbols is a very minor feature that allows you to link your
697 // other program's symbols.
699 // When the option is given, we link "just symbols". The section table is
726 // will reorder the symbols in the symbol table, invalidating the data
727 // in the address-significance table, which refers to symbols by index.
1040 symbols = std::make_unique<Symbol *[]>(numSymbols);
1045 if (!symbols[i])
1046 symbols[i] = symtab.insert(CHECK(eSyms[i].getName(stringTable), this));
1048 // Perform symbol resolution on non-local symbols.
1064 Symbol *sym = symbols[i];
1076 // Handle global defined symbols. Defined::section will be set in postParse.
1081 // Undefined symbols (excluding those defined relative to non-prevailing
1082 // sections) can trigger recursive extract. Process defined symbols first so
1085 // interconnected symbols will all be resolved to the same file, instead of
1089 Symbol *sym = symbols[i];
1129 symbols[i] = reinterpret_cast<Symbol *>(locals + i);
1131 new (symbols[i]) Undefined(this, name, STB_LOCAL, eSym.st_other, type,
1134 new (symbols[i]) Defined(this, name, STB_LOCAL, eSym.st_other, type,
1136 symbols[i]->partition = 1;
1137 symbols[i]->isUsedInRegularObj = true;
1142 // duplicate symbols and may do symbol property merge in the future.
1148 Symbol &sym = *symbols[i];
1157 // address which is used by STT_FUNC and STT_OBJECT. STT_TLS symbols can
1203 // The handling of tentative definitions (COMMON symbols) in archives is murky.
1231 symtabFile.TheReader.symbols()) {
1463 // System libraries can have a lot of symbols with versions. Using a
1468 // Add symbols to the symbol table.
1473 // ELF spec requires that all local symbols precede weak or global
1474 // symbols in each symbol table, and the index of first non-local symbol
1486 // For unversioned undefined symbols, VER_NDX_GLOBAL makes more sense but
1531 // Also add the symbol with the versioned name to handle undefined symbols
1624 // symbols later in the link stage). So we append file offset to make
1691 numSymbols = obj->symbols().size();
1692 symbols = std::make_unique<Symbol *[]>(numSymbols);
1694 // Process defined symbols first. See the comment in
1696 for (auto [i, irSym] : llvm::enumerate(obj->symbols()))
1698 createBitcodeSymbol(symbols[i], keptComdats, irSym, *this);
1699 for (auto [i, irSym] : llvm::enumerate(obj->symbols()))
1701 createBitcodeSymbol(symbols[i], keptComdats, irSym, *this);
1708 numSymbols = obj->symbols().size();
1709 symbols = std::make_unique<Symbol *[]>(numSymbols);
1710 for (auto [i, irSym] : llvm::enumerate(obj->symbols()))
1714 symbols[i] = sym;
1719 for (auto [i, irSym] : llvm::enumerate(obj->symbols())) {
1720 const Symbol &sym = *symbols[i];
1738 // blob, we define _binary_foo_{start,end,size} symbols, so that
1786 symbols = std::make_unique<Symbol *[]>(numSymbols);
1794 symbols[i] = symtab.insert(CHECK(eSyms[i].getName(stringTable), this));
1795 symbols[i]->resolve(LazyObject{*this});