• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/contrib/llvm-project/llvm/lib/MC/

Lines Matching defs:Symbol

113   static bool isInSymtab(const MCAsmLayout &Layout, const MCSymbolELF &Symbol,
118 const MCSymbolELF *Symbol;
124 unsigned LHSType = Symbol->getType();
125 unsigned RHSType = RHS.Symbol->getType();
137 /// @name Symbol Table Data
515 static bool isIFunc(const MCSymbolELF *Symbol) {
516 while (Symbol->getType() != ELF::STT_GNU_IFUNC) {
518 if (!Symbol->isVariable() ||
519 !(Value = dyn_cast<MCSymbolRefExpr>(Symbol->getVariableValue())) ||
521 mergeTypeForSet(Symbol->getType(), ELF::STT_GNU_IFUNC) != ELF::STT_GNU_IFUNC)
523 Symbol = &cast<MCSymbolELF>(Value->getSymbol());
530 const auto &Symbol = cast<MCSymbolELF>(*MSD.Symbol);
532 cast_or_null<MCSymbolELF>(Layout.getBaseSymbol(Symbol));
536 bool IsReserved = !Base || Symbol.isCommon();
539 uint8_t Binding = Symbol.getBinding();
540 uint8_t Type = Symbol.getType();
541 if (isIFunc(&Symbol))
550 uint8_t Visibility = Symbol.getVisibility();
551 uint8_t Other = Symbol.getOther() | Visibility;
553 uint64_t Value = SymbolValue(*MSD.Symbol, Layout);
556 const MCExpr *ESize = MSD.Symbol->getSize();
572 bool ELFWriter::isInSymtab(const MCAsmLayout &Layout, const MCSymbolELF &Symbol,
574 if (Symbol.isVariable()) {
575 const MCExpr *Expr = Symbol.getVariableValue();
592 if (Symbol.isVariable() && Symbol.isUndefined()) {
594 Layout.getBaseSymbol(Symbol);
598 if (Symbol.isTemporary())
601 if (Symbol.getType() == ELF::STT_SECTION)
614 // Symbol table
633 const auto &Symbol = cast<MCSymbolELF>(S);
634 bool Used = Symbol.isUsedInReloc();
635 bool WeakrefUsed = Symbol.isWeakrefUsedInReloc();
636 bool isSignature = Symbol.isSignature();
638 if (!isInSymtab(Layout, Symbol, Used || WeakrefUsed || isSignature,
639 OWriter.Renames.count(&Symbol)))
642 if (Symbol.isTemporary() && Symbol.isUndefined()) {
643 Ctx.reportError(SMLoc(), "Undefined temporary symbol " + Symbol.getName());
648 MSD.Symbol = cast<MCSymbolELF>(&Symbol);
650 bool Local = Symbol.getBinding() == ELF::STB_LOCAL;
651 assert(Local || !Symbol.isTemporary());
653 if (Symbol.isAbsolute()) {
655 } else if (Symbol.isCommon()) {
656 if (Symbol.isTargetCommon()) {
657 MSD.SectionIndex = Symbol.getIndex();
662 } else if (Symbol.isUndefined()) {
664 MSD.SectionIndex = RevGroupMap.lookup(&Symbol);
672 static_cast<const MCSectionELF &>(Symbol.getSection());
680 assert(static_cast<const MCSymbolELF &>(Symbol).getType() ==
683 "Undefined section reference: " + Symbol.getName());
695 StringRef Name = Symbol.getName();
698 if (Symbol.getType() != ELF::STT_SECTION) {
741 unsigned StringIndex = MSD.Symbol->getType() == ELF::STT_SECTION
744 MSD.Symbol->setIndex(Index++);
753 MSD.Symbol->setIndex(Index++);
755 assert(MSD.Symbol->getBinding() != ELF::STB_LOCAL);
930 unsigned Index = Entry.Symbol ? Entry.Symbol->getIndex() : 0;
1259 const auto &Symbol = cast<MCSymbolELF>(*P.second);
1267 Tail = Rest.substr(Symbol.isUndefined() ? 2 : 1);
1272 const MCExpr *Value = MCSymbolRefExpr::create(&Symbol, Asm.getContext());
1277 Alias->setExternal(Symbol.isExternal());
1278 Alias->setBinding(Symbol.getBinding());
1279 Alias->setOther(Symbol.getOther());
1281 if (!Symbol.isUndefined() && !Rest.startswith("@@@"))
1285 if (Symbol.isUndefined() && Rest.startswith("@@") &&
1292 if (Renames.count(&Symbol) && Renames[&Symbol] != Alias) {
1295 Symbol.getName());
1299 Renames.insert(std::make_pair(&Symbol, Alias));