Lines Matching refs:ELFT

93 template <class ELFT> struct RelSymbol {
94 RelSymbol(const typename ELFT::Sym *S, StringRef N) in RelSymbol()
96 const typename ELFT::Sym *Sym;
192 template <class ELFT> class Relocation {
194 Relocation(const typename ELFT::Rel &R, bool IsMips64EL) in Relocation()
198 Relocation(const typename ELFT::Rela &R, bool IsMips64EL) in Relocation()
199 : Relocation((const typename ELFT::Rel &)R, IsMips64EL) { in Relocation()
205 typename ELFT::uint Offset;
206 typename ELFT::uint Info;
210 template <class ELFT> class MipsGOTParser;
212 template <typename ELFT> class ELFDumper : public ObjDumper {
213 LLVM_ELF_IMPORT_TYPES_ELFT(ELFT)
216 ELFDumper(const object::ELFObjectFile<ELFT> &ObjF, ScopedPrinter &Writer);
236 const object::ELFObjectFile<ELFT> &getElfObject() const { return ObjF; }; in getElfObject()
286 virtual void printRelRelaReloc(const Relocation<ELFT> &R,
287 const RelSymbol<ELFT> &RelSym) = 0;
290 void printReloc(const Relocation<ELFT> &R, unsigned RelIndex,
292 void printDynamicReloc(const Relocation<ELFT> &R);
297 llvm::function_ref<void(const Relocation<ELFT> &, unsigned,
311 virtual void printMipsGOT(const MipsGOTParser<ELFT> &Parser) = 0;
312 virtual void printMipsPLT(const MipsGOTParser<ELFT> &Parser) = 0;
342 void printStackSize(const Relocation<ELFT> &R, const Elf_Shdr &RelocSec,
352 const object::ELFObjectFile<ELFT> &ObjF;
353 const ELFFile<ELFT> &Obj;
417 Expected<RelSymbol<ELFT>> getRelocationTarget(const Relocation<ELFT> &R,
426 template <class ELFT>
427 std::string ELFDumper<ELFT>::describe(const Elf_Shdr &Sec) const { in describe()
433 template <class ELFT> struct SymtabLink {
434 typename ELFT::SymRange Symbols;
436 const typename ELFT::Shdr *SymTab;
441 template <class ELFT>
442 Expected<SymtabLink<ELFT>> getLinkAsSymtab(const ELFFile<ELFT> &Obj, in getLinkAsSymtab()
443 const typename ELFT::Shdr &Sec, in getLinkAsSymtab()
445 Expected<const typename ELFT::Shdr *> SymtabOrErr = in getLinkAsSymtab()
465 Expected<typename ELFT::SymRange> SymsOrErr = Obj.symbols(*SymtabOrErr); in getLinkAsSymtab()
470 return SymtabLink<ELFT>{*SymsOrErr, *StrTabOrErr, *SymtabOrErr}; in getLinkAsSymtab()
475 template <class ELFT>
476 Expected<ArrayRef<typename ELFT::Versym>>
477 ELFDumper<ELFT>::getVersionTable(const Elf_Shdr &Sec, ArrayRef<Elf_Sym> *SymTab, in getVersionTable()
492 Expected<SymtabLink<ELFT>> SymTabOrErr = in getVersionTable()
515 template <class ELFT>
516 std::pair<typename ELFDumper<ELFT>::Elf_Sym_Range, std::optional<StringRef>>
517 ELFDumper<ELFT>::getSymtabAndStrtab() const { in getSymtabAndStrtab()
537 template <class ELFT>
538 void ELFDumper<ELFT>::printSymbolsHelper(bool IsDynamic, in printSymbolsHelper()
573 template <typename ELFT> class GNUELFDumper : public ELFDumper<ELFT> {
577 LLVM_ELF_IMPORT_TYPES_ELFT(ELFT)
579 GNUELFDumper(const object::ELFObjectFile<ELFT> &ObjF, ScopedPrinter &Writer) in GNUELFDumper()
580 : ELFDumper<ELFT>(ObjF, Writer), in GNUELFDumper()
671 void printRelRelaReloc(const Relocation<ELFT> &R,
672 const RelSymbol<ELFT> &RelSym) override;
686 void printGNUVersionSectionProlog(const typename ELFT::Shdr &Sec,
692 void printMipsGOT(const MipsGOTParser<ELFT> &Parser) override;
693 void printMipsPLT(const MipsGOTParser<ELFT> &Parser) override;
697 template <typename ELFT> class LLVMELFDumper : public ELFDumper<ELFT> {
699 LLVM_ELF_IMPORT_TYPES_ELFT(ELFT)
701 LLVMELFDumper(const object::ELFObjectFile<ELFT> &ObjF, ScopedPrinter &Writer) in LLVMELFDumper()
702 : ELFDumper<ELFT>(ObjF, Writer), W(Writer) {} in LLVMELFDumper()
735 void printRelRelaReloc(const Relocation<ELFT> &R,
736 const RelSymbol<ELFT> &RelSym) override;
748 void printMipsGOT(const MipsGOTParser<ELFT> &Parser) override;
749 void printMipsPLT(const MipsGOTParser<ELFT> &Parser) override;
756 virtual void printExpandedRelRelaReloc(const Relocation<ELFT> &R,
759 virtual void printDefaultRelRelaReloc(const Relocation<ELFT> &R,
772 template <typename ELFT> class JSONELFDumper : public LLVMELFDumper<ELFT> {
774 LLVM_ELF_IMPORT_TYPES_ELFT(ELFT)
776 JSONELFDumper(const object::ELFObjectFile<ELFT> &ObjF, ScopedPrinter &Writer) in JSONELFDumper()
777 : LLVMELFDumper<ELFT>(ObjF, Writer) {} in JSONELFDumper()
786 void printDefaultRelRelaReloc(const Relocation<ELFT> &R,
809 template <class ELFT>
811 createELFDumper(const ELFObjectFile<ELFT> &Obj, ScopedPrinter &Writer) { in createELFDumper()
813 return std::make_unique<GNUELFDumper<ELFT>>(Obj, Writer); in createELFDumper()
815 return std::make_unique<JSONELFDumper<ELFT>>(Obj, Writer); in createELFDumper()
816 return std::make_unique<LLVMELFDumper<ELFT>>(Obj, Writer); in createELFDumper()
839 template <class ELFT>
841 ELFDumper<ELFT>::getVersionMap() const { in getVersionMap()
857 template <typename ELFT>
858 Expected<StringRef> ELFDumper<ELFT>::getSymbolVersion(const Elf_Sym &Sym, in getSymbolVersion()
894 template <typename ELFT>
895 Expected<RelSymbol<ELFT>>
896 ELFDumper<ELFT>::getRelocationTarget(const Relocation<ELFT> &R, in getRelocationTarget()
899 return RelSymbol<ELFT>(nullptr, ""); in getRelocationTarget()
909 return RelSymbol<ELFT>(nullptr, ""); in getRelocationTarget()
920 return RelSymbol<ELFT>(Sym, SymbolName); in getRelocationTarget()
923 template <typename ELFT>
924 ArrayRef<typename ELFT::Word>
925 ELFDumper<ELFT>::getShndxTable(const Elf_Shdr *Symtab) const { in getShndxTable()
938 template <typename ELFT>
939 std::string ELFDumper<ELFT>::getStaticSymbolName(uint32_t Index) const { in getStaticSymbolName()
946 Expected<const typename ELFT::Sym *> SymOrErr = in getStaticSymbolName()
961 template <typename ELFT>
962 std::string ELFDumper<ELFT>::getFullSymbolName( in getFullSymbolName()
1008 template <typename ELFT>
1010 ELFDumper<ELFT>::getSymbolSectionIndex(const Elf_Sym &Symbol, unsigned SymIndex, in getSymbolSectionIndex()
1014 return object::getExtendedSymbolTableIndex<ELFT>(Symbol, SymIndex, in getSymbolSectionIndex()
1044 template <typename ELFT>
1046 ELFDumper<ELFT>::getSymbolSectionName(const Elf_Sym &Symbol, in getSymbolSectionName()
1768 template <typename ELFT>
1769 std::pair<const typename ELFT::Phdr *, const typename ELFT::Shdr *>
1770 ELFDumper<ELFT>::findDynamic() { in findDynamic()
1825 template <typename ELFT>
1826 void ELFDumper<ELFT>::loadDynamicTable() { in loadDynamicTable()
1908 template <typename ELFT>
1909 ELFDumper<ELFT>::ELFDumper(const object::ELFObjectFile<ELFT> &O, in ELFDumper()
1919 typename ELFT::ShdrRange Sections = cantFail(Obj.sections()); in ELFDumper()
1994 template <typename ELFT> void ELFDumper<ELFT>::parseDynamicTable() { in parseDynamicTable()
2207 template <typename ELFT> void ELFDumper<ELFT>::printVersionInfo() { in printVersionInfo()
2291 template <class ELFT>
2292 const typename ELFT::Shdr *
2293 ELFDumper<ELFT>::findSectionByName(StringRef Name) const { in findSectionByName()
2306 template <class ELFT>
2307 std::string ELFDumper<ELFT>::getDynamicEntry(uint64_t Type, in getDynamicEntry()
2507 template <class ELFT>
2508 StringRef ELFDumper<ELFT>::getDynamicString(uint64_t Value) const { in getDynamicString()
2546 template <class ELFT> void ELFDumper<ELFT>::printUnwindInfo() { in printUnwindInfo()
2547 DwarfCFIEH::PrinterContext<ELFT> Ctx(W, ObjF); in printUnwindInfo()
2564 template <class ELFT> void ELFDumper<ELFT>::printNeededLibraries() { in printNeededLibraries()
2578 template <class ELFT>
2579 static Error checkHashTable(const ELFDumper<ELFT> &Dumper, in checkHashTable()
2580 const typename ELFT::Hash *H, in checkHashTable()
2582 const ELFFile<ELFT> &Obj = Dumper.getElfObject().getELFFile(); in checkHashTable()
2604 const unsigned HeaderSize = 2 * sizeof(typename ELFT::Word); in checkHashTable()
2613 ((uint64_t)H->nbucket + H->nchain) * sizeof(typename ELFT::Word)) in checkHashTable()
2619 template <class ELFT>
2620 static Error checkGNUHashTable(const ELFFile<ELFT> &Obj, in checkGNUHashTable()
2621 const typename ELFT::GnuHash *GnuHashTable, in checkGNUHashTable()
2631 (uint64_t)GnuHashTable->maskwords * sizeof(typename ELFT::Off) >= in checkGNUHashTable()
2640 template <typename ELFT> void ELFDumper<ELFT>::printHashTable() { in printHashTable()
2661 template <class ELFT>
2662 static Expected<ArrayRef<typename ELFT::Word>>
2664 const typename ELFT::GnuHash *GnuHashTable) { in getGnuHashTableChains()
2668 ArrayRef<typename ELFT::Sym> DynSymTable = in getGnuHashTableChains()
2669 DynSymRegion->template getAsArrayRef<typename ELFT::Sym>(); in getGnuHashTableChains()
2684 ArrayRef<typename ELFT::Word> Buckets = GnuHashTable->buckets(); in getGnuHashTableChains()
2685 if (!llvm::all_of(Buckets, [](typename ELFT::Word V) { return V == 0; })) in getGnuHashTableChains()
2692 return ArrayRef<typename ELFT::Word>(); in getGnuHashTableChains()
2695 template <typename ELFT>
2696 void ELFDumper<ELFT>::printGnuHashTable() { in printGnuHashTable()
2702 Error Err = checkGNUHashTable<ELFT>(Obj, GnuHashTable, &IsHeaderValid); in printGnuHashTable()
2715 ArrayRef<typename ELFT::Off> BloomFilter = GnuHashTable->filter(); in printGnuHashTable()
2722 getGnuHashTableChains<ELFT>(DynSymRegion, GnuHashTable); in printGnuHashTable()
2733 template <typename ELFT> void ELFDumper<ELFT>::printHashHistograms() { in printHashHistograms()
2736 if (Error E = checkHashTable<ELFT>(*this, this->HashTable)) in printHashHistograms()
2744 if (Error E = checkGNUHashTable<ELFT>(this->Obj, this->GnuHashTable)) in printHashHistograms()
2751 template <typename ELFT>
2752 void ELFDumper<ELFT>::printHashHistogram(const Elf_Hash &HashTable) const { in printHashHistogram()
2797 template <class ELFT>
2798 void ELFDumper<ELFT>::printGnuHashHistogram( in printGnuHashHistogram()
2801 getGnuHashTableChains<ELFT>(this->DynSymRegion, &GnuHashTable); in printGnuHashHistogram()
2843 template <typename ELFT> void ELFDumper<ELFT>::printLoadName() { in printLoadName()
2850 template <class ELFT> void ELFDumper<ELFT>::printArchSpecificInfo() { in printArchSpecificInfo()
2880 MipsGOTParser<ELFT> Parser(*this); in printArchSpecificInfo()
2897 template <class ELFT>
2898 void ELFDumper<ELFT>::printAttributes( in printAttributes()
2932 template <class ELFT> class MipsGOTParser {
2934 LLVM_ELF_IMPORT_TYPES_ELFT(ELFT)
2935 using Entry = typename ELFT::Addr;
2939 const ELFFile<ELFT> &Obj;
2940 const ELFDumper<ELFT> &Dumper;
2942 MipsGOTParser(const ELFDumper<ELFT> &D);
2990 template <class ELFT>
2991 MipsGOTParser<ELFT>::MipsGOTParser(const ELFDumper<ELFT> &D) in MipsGOTParser()
2997 template <class ELFT>
2998 Error MipsGOTParser<ELFT>::findGOT(Elf_Dyn_Range DynTable, in findGOT()
3069 template <class ELFT>
3070 Error MipsGOTParser<ELFT>::findPLT(Elf_Dyn_Range DynTable) { in findPLT()
3132 template <class ELFT> uint64_t MipsGOTParser<ELFT>::getGp() const { in getGp()
3136 template <class ELFT>
3137 const typename MipsGOTParser<ELFT>::Entry *
3138 MipsGOTParser<ELFT>::getGotLazyResolver() const { in getGotLazyResolver()
3142 template <class ELFT>
3143 const typename MipsGOTParser<ELFT>::Entry *
3144 MipsGOTParser<ELFT>::getGotModulePointer() const { in getGotModulePointer()
3153 template <class ELFT>
3154 typename MipsGOTParser<ELFT>::Entries
3155 MipsGOTParser<ELFT>::getLocalEntries() const { in getLocalEntries()
3162 template <class ELFT>
3163 typename MipsGOTParser<ELFT>::Entries
3164 MipsGOTParser<ELFT>::getGlobalEntries() const { in getGlobalEntries()
3170 template <class ELFT>
3171 typename MipsGOTParser<ELFT>::Entries
3172 MipsGOTParser<ELFT>::getOtherEntries() const { in getOtherEntries()
3179 template <class ELFT>
3180 uint64_t MipsGOTParser<ELFT>::getGotAddress(const Entry *E) const { in getGotAddress()
3185 template <class ELFT>
3186 int64_t MipsGOTParser<ELFT>::getGotOffset(const Entry *E) const { in getGotOffset()
3191 template <class ELFT>
3192 const typename MipsGOTParser<ELFT>::Elf_Sym *
3193 MipsGOTParser<ELFT>::getGotSym(const Entry *E) const { in getGotSym()
3198 template <class ELFT>
3199 const typename MipsGOTParser<ELFT>::Entry *
3200 MipsGOTParser<ELFT>::getPltLazyResolver() const { in getPltLazyResolver()
3204 template <class ELFT>
3205 const typename MipsGOTParser<ELFT>::Entry *
3206 MipsGOTParser<ELFT>::getPltModulePointer() const { in getPltModulePointer()
3210 template <class ELFT>
3211 typename MipsGOTParser<ELFT>::Entries
3212 MipsGOTParser<ELFT>::getPltEntries() const { in getPltEntries()
3218 template <class ELFT>
3219 uint64_t MipsGOTParser<ELFT>::getPltAddress(const Entry *E) const { in getPltAddress()
3224 template <class ELFT>
3225 const typename MipsGOTParser<ELFT>::Elf_Sym *
3226 MipsGOTParser<ELFT>::getPltSym(const Entry *E) const { in getPltSym()
3312 template <class ELFT>
3314 const Elf_Mips_RegInfo<ELFT> &Reginfo) { in printMipsReginfoData()
3323 template <class ELFT> void ELFDumper<ELFT>::printMipsReginfo() { in printMipsReginfo()
3339 if (ContentsOrErr->size() < sizeof(Elf_Mips_RegInfo<ELFT>)) { in printMipsReginfo()
3346 printMipsReginfoData(W, *reinterpret_cast<const Elf_Mips_RegInfo<ELFT> *>( in printMipsReginfo()
3350 template <class ELFT>
3351 static Expected<const Elf_Mips_Options<ELFT> *>
3354 if (SecData.size() < sizeof(Elf_Mips_Options<ELFT>)) in readMipsOptions()
3358 const Elf_Mips_Options<ELFT> *O = in readMipsOptions()
3359 reinterpret_cast<const Elf_Mips_Options<ELFT> *>(SecData.data()); in readMipsOptions()
3373 sizeof(Elf_Mips_Options<ELFT>) + sizeof(Elf_Mips_RegInfo<ELFT>); in readMipsOptions()
3387 template <class ELFT> void ELFDumper<ELFT>::printMipsOptions() { in printMipsOptions()
3401 Expected<const Elf_Mips_Options<ELFT> *> OptsOrErr = in printMipsOptions()
3402 readMipsOptions<ELFT>(SecBegin, Data, IsSupported); in printMipsOptions()
3424 template <class ELFT> void ELFDumper<ELFT>::printStackMap() const { in printStackMap()
3443 StackMapParser<ELFT::Endianness>::validateHeader(*ContentOrErr)) { in printStackMap()
3448 prettyPrintStackMap(W, StackMapParser<ELFT::Endianness>(*ContentOrErr)); in printStackMap()
3451 template <class ELFT>
3452 void ELFDumper<ELFT>::printReloc(const Relocation<ELFT> &R, unsigned RelIndex, in printReloc()
3454 Expected<RelSymbol<ELFT>> Target = getRelocationTarget(R, SymTab); in printReloc()
3463 template <class ELFT>
3465 ELFDumper<ELFT>::getOtherFlagsFromSymbol(const Elf_Ehdr &Header, in getOtherFlagsFromSymbol()
3501 template <class ELFT>
3502 static std::string getSectionHeadersNumString(const ELFFile<ELFT> &Obj, in getSectionHeadersNumString()
3504 const typename ELFT::Ehdr &ElfHeader = Obj.getHeader(); in getSectionHeadersNumString()
3508 Expected<ArrayRef<typename ELFT::Shdr>> ArrOrErr = Obj.sections(); in getSectionHeadersNumString()
3521 template <class ELFT>
3522 static std::string getSectionHeaderTableIndexString(const ELFFile<ELFT> &Obj, in getSectionHeaderTableIndexString()
3524 const typename ELFT::Ehdr &ElfHeader = Obj.getHeader(); in getSectionHeaderTableIndexString()
3528 Expected<ArrayRef<typename ELFT::Shdr>> ArrOrErr = Obj.sections(); in getSectionHeaderTableIndexString()
3551 template <class ELFT>
3552 void GNUELFDumper<ELFT>::printFileSummary(StringRef FileStr, ObjectFile &Obj, in printFileSummary()
3561 template <class ELFT> void GNUELFDumper<ELFT>::printFileHeaders() { in printFileHeaders()
3693 template <class ELFT> std::vector<GroupSection> ELFDumper<ELFT>::getGroups() { in getGroups()
3788 template <class ELFT> void GNUELFDumper<ELFT>::printGroupSections() { in printGroupSections()
3814 template <class ELFT>
3815 void GNUELFDumper<ELFT>::printRelRelaReloc(const Relocation<ELFT> &R, in printRelRelaReloc()
3816 const RelSymbol<ELFT> &RelSym) { in printRelRelaReloc()
3818 unsigned Bias = ELFT::Is64Bits ? 8 : 0; in printRelRelaReloc()
3820 unsigned Width = ELFT::Is64Bits ? 16 : 8; in printRelRelaReloc()
3856 template <class ELFT>
3858 const typename ELFT::Ehdr &EHeader, in printRelocHeaderFields()
3861 if (ELFT::Is64Bits) in printRelocHeaderFields()
3871 template <class ELFT>
3872 void GNUELFDumper<ELFT>::printDynamicRelocHeader(unsigned Type, StringRef Name, in printDynamicRelocHeader()
3880 printRelocHeaderFields<ELFT>(OS, Type, this->Obj.getHeader()); in printDynamicRelocHeader()
3883 template <class ELFT>
3884 static bool isRelocationSec(const typename ELFT::Shdr &Sec, in isRelocationSec()
3885 const typename ELFT::Ehdr &EHeader) { in isRelocationSec()
3895 template <class ELFT> void GNUELFDumper<ELFT>::printRelocations() { in printRelocations()
3907 Expected<std::vector<typename ELFT::Rela>> RelasOrErr = in printRelocations()
3937 if (!isRelocationSec<ELFT>(Sec, this->Obj.getHeader())) in printRelocations()
3965 printRelocHeaderFields<ELFT>(OS, Sec.sh_type, this->Obj.getHeader(), in printRelocations()
3975 template <class ELFT> void GNUELFDumper<ELFT>::printRelr(const Elf_Shdr &Sec) { in printRelr()
3983 if (ELFT::Is64Bits) in printRelr()
4007 typename ELFT::uint Base = 0; in printRelr()
4010 OS << format_hex_no_prefix(Where, ELFT::Is64Bits ? 16 : 8); in printRelr()
4023 typename ELFT::uint Entry = R; in printRelr()
4025 << format_hex_no_prefix(Entry, ELFT::Is64Bits ? 16 : 8) << ' '; in printRelr()
4028 Base = Entry + sizeof(typename ELFT::uint); in printRelr()
4032 Where += sizeof(typename ELFT::uint)) { in printRelr()
4037 OS.indent(ELFT::Is64Bits ? 24 : 16); in printRelr()
4041 Base += (CHAR_BIT * sizeof(Entry) - 1) * sizeof(typename ELFT::uint); in printRelr()
4097 template <class ELFT> void GNUELFDumper<ELFT>::printSectionHeaders() { in printSectionHeaders()
4107 unsigned Bias = ELFT::Is64Bits ? 0 : 8; in printSectionHeaders()
4139 to_string(format_hex_no_prefix(Sec.sh_addr, ELFT::Is64Bits ? 16 : 8)); in printSectionHeaders()
4167 template <class ELFT>
4168 void GNUELFDumper<ELFT>::printSymtabMessage(const Elf_Shdr *Symtab, in printSymtabMessage()
4181 if (ELFT::Is64Bits) { in printSymtabMessage()
4191 OS.PadToColumn((ELFT::Is64Bits ? 56 : 48) + (NonVisibilityBitsUsed ? 13 : 0)); in printSymtabMessage()
4198 template <class ELFT>
4199 std::string GNUELFDumper<ELFT>::getSymbolSectionNdx( in getSymbolSectionNdx()
4212 object::getExtendedSymbolTableIndex<ELFT>(Symbol, SymIndex, ShndxTable); in getSymbolSectionNdx()
4257 template <class ELFT>
4258 void GNUELFDumper<ELFT>::printSymbol(const Elf_Sym &Symbol, unsigned SymIndex, in printSymbol()
4263 unsigned Bias = ELFT::Is64Bits ? 8 : 0; in printSymbol()
4268 to_string(format_hex_no_prefix(Symbol.st_value, ELFT::Is64Bits ? 16 : 8)); in printSymbol()
4320 template <class ELFT>
4321 void GNUELFDumper<ELFT>::printHashedSymbol(const Elf_Sym *Symbol, in printHashedSymbol()
4326 unsigned Bias = ELFT::Is64Bits ? 8 : 0; in printHashedSymbol()
4333 format_hex_no_prefix(Symbol->st_value, ELFT::Is64Bits ? 16 : 8)); in printHashedSymbol()
4356 template <class ELFT>
4357 void GNUELFDumper<ELFT>::printSymbols(bool PrintSymbols, in printSymbols()
4368 template <class ELFT>
4369 void GNUELFDumper<ELFT>::printHashTableSymbols(const Elf_Hash &SysVHash) { in printHashTableSymbols()
4373 if (ELFT::Is64Bits) in printHashTableSymbols()
4415 template <class ELFT>
4416 void GNUELFDumper<ELFT>::printGnuHashTableSymbols(const Elf_GnuHash &GnuHash) { in printGnuHashTableSymbols()
4444 getGnuHashTableChains<ELFT>(this->DynSymRegion, &GnuHash); in printGnuHashTableSymbols()
4485 template <class ELFT> void GNUELFDumper<ELFT>::printHashSymbols() { in printHashSymbols()
4488 if (Error E = checkHashTable<ELFT>(*this, this->HashTable)) in printHashSymbols()
4497 if (ELFT::Is64Bits) in printHashSymbols()
4503 if (Error E = checkGNUHashTable<ELFT>(this->Obj, this->GnuHashTable)) in printHashSymbols()
4510 template <class ELFT> void GNUELFDumper<ELFT>::printSectionDetails() { in printSectionDetails()
4534 constexpr bool Is64 = ELFT::Is64Bits; in printSectionDetails()
4637 OS << ", " << format_hex_no_prefix(Chdr->ch_size, ELFT::Is64Bits ? 16 : 8) in printSectionDetails()
4652 template <class ELFT>
4653 static bool checkTLSSections(const typename ELFT::Phdr &Phdr, in checkTLSSections()
4654 const typename ELFT::Shdr &Sec) { in checkTLSSections()
4670 template <class ELFT>
4671 static bool checkPTDynamic(const typename ELFT::Phdr &Phdr, in checkPTDynamic()
4672 const typename ELFT::Shdr &Sec) { in checkPTDynamic()
4687 template <class ELFT>
4688 void GNUELFDumper<ELFT>::printProgramHeaders( in printProgramHeaders()
4708 template <class ELFT> void GNUELFDumper<ELFT>::printProgramHeaders() { in printProgramHeaders()
4709 unsigned Bias = ELFT::Is64Bits ? 8 : 0; in printProgramHeaders()
4719 if (ELFT::Is64Bits) in printProgramHeaders()
4726 unsigned Width = ELFT::Is64Bits ? 18 : 10; in printProgramHeaders()
4727 unsigned SizeWidth = ELFT::Is64Bits ? 8 : 7; in printProgramHeaders()
4777 template <class ELFT> void GNUELFDumper<ELFT>::printSectionMapping() { in printSectionMapping()
4801 if (isSectionInSegment<ELFT>(Phdr, Sec) && in printSectionMapping()
4802 checkTLSSections<ELFT>(Phdr, Sec) && in printSectionMapping()
4803 checkPTDynamic<ELFT>(Phdr, Sec)) { in printSectionMapping()
4830 template <class ELFT>
4831 RelSymbol<ELFT> getSymbolForReloc(const ELFDumper<ELFT> &Dumper, in getSymbolForReloc()
4832 const Relocation<ELFT> &Reloc) { in getSymbolForReloc()
4833 using Elf_Sym = typename ELFT::Sym; in getSymbolForReloc()
4835 const Twine &Reason) -> RelSymbol<ELFT> { in getSymbolForReloc()
4856 const ELFFile<ELFT> &Obj = Dumper.getElfObject().getELFFile(); in getSymbolForReloc()
4874 template <class ELFT>
4875 static size_t getMaxDynamicTagSize(const ELFFile<ELFT> &Obj, in getMaxDynamicTagSize()
4876 typename ELFT::DynRange Tags) { in getMaxDynamicTagSize()
4878 for (const typename ELFT::Dyn &Dyn : Tags) in getMaxDynamicTagSize()
4883 template <class ELFT> void GNUELFDumper<ELFT>::printDynamicTable() { in printDynamicTable()
4899 OS << " Tag" + std::string(ELFT::Is64Bits ? 16 : 8, ' ') + "Type" in printDynamicTable()
4908 OS << " " << format_hex(Tag, ELFT::Is64Bits ? 18 : 10) in printDynamicTable()
4913 template <class ELFT> void GNUELFDumper<ELFT>::printDynamicRelocations() { in printDynamicRelocations()
4917 template <class ELFT>
4918 void ELFDumper<ELFT>::printDynamicReloc(const Relocation<ELFT> &R) { in printDynamicReloc()
4922 template <class ELFT>
4923 void ELFDumper<ELFT>::printRelocationsHelper(const Elf_Shdr &Sec) { in printRelocationsHelper()
4925 Sec, [&](const Relocation<ELFT> &R, unsigned Ndx, const Elf_Shdr &Sec, in printRelocationsHelper()
4929 template <class ELFT> void ELFDumper<ELFT>::printDynamicRelocationsHelper() { in printDynamicRelocationsHelper()
4947 printDynamicReloc(Relocation<ELFT>(R, false)); in printDynamicRelocationsHelper()
4949 printDynamicReloc(Relocation<ELFT>(R, false)); in printDynamicRelocationsHelper()
4963 printDynamicReloc(Relocation<ELFT>(Rela, IsMips64EL)); in printDynamicRelocationsHelper()
4970 printDynamicReloc(Relocation<ELFT>(Rel, IsMips64EL)); in printDynamicRelocationsHelper()
4978 printDynamicReloc(Relocation<ELFT>(Rel, IsMips64EL)); in printDynamicRelocationsHelper()
4986 printDynamicReloc(Relocation<ELFT>(Rela, IsMips64EL)); in printDynamicRelocationsHelper()
4993 printDynamicReloc(Relocation<ELFT>(Rel, IsMips64EL)); in printDynamicRelocationsHelper()
4998 template <class ELFT>
4999 void GNUELFDumper<ELFT>::printGNUVersionSectionProlog( in printGNUVersionSectionProlog()
5000 const typename ELFT::Shdr &Sec, const Twine &Label, unsigned EntriesNum) { in printGNUVersionSectionProlog()
5008 if (Expected<const typename ELFT::Shdr *> LinkedSecOrErr = in printGNUVersionSectionProlog()
5021 template <class ELFT>
5022 void GNUELFDumper<ELFT>::printVersionSymbolSection(const Elf_Shdr *Sec) { in printVersionSymbolSection()
5106 template <class ELFT>
5107 void GNUELFDumper<ELFT>::printVersionDefinitionSection(const Elf_Shdr *Sec) { in printVersionDefinitionSection()
5133 template <class ELFT>
5134 void GNUELFDumper<ELFT>::printVersionDependencySection(const Elf_Shdr *Sec) { in printVersionDependencySection()
5159 template <class ELFT>
5160 void GNUELFDumper<ELFT>::printHashHistogramStats(size_t NBucket, in printHashHistogramStats()
5177 template <class ELFT> void GNUELFDumper<ELFT>::printCGProfile() { in printCGProfile()
5181 template <class ELFT>
5182 void GNUELFDumper<ELFT>::printBBAddrMaps(bool /*PrettyPGOAnalysis*/) { in printBBAddrMaps()
5201 template <class ELFT>
5203 decodeAddrsigSection(const ELFFile<ELFT> &Obj, const typename ELFT::Shdr &Sec) { in decodeAddrsigSection()
5216 template <class ELFT> void GNUELFDumper<ELFT>::printAddrsig() { in printAddrsig()
5243 template <class ELFT>
5254 support::endian::read64<ELFT::Endianness>(Desc.data() + 0); in printAArch64PAuthABICoreInfo()
5255 uint64_t Version = support::endian::read64<ELFT::Endianness>(Desc.data() + 8); in printAArch64PAuthABICoreInfo()
5310 template <typename ELFT>
5331 if (DataSize == sizeof(typename ELFT::uint)) in getGNUProperty()
5333 (uint64_t)(*(const typename ELFT::Addr *)Data.data())); in getGNUProperty()
5351 PrData = endian::read32<ELFT::Endianness>(Data.data()); in getGNUProperty()
5368 printAArch64PAuthABICoreInfo<ELFT>(OS, DataSize, Data); in getGNUProperty()
5378 PrData = endian::read32<ELFT::Endianness>(Data.data()); in getGNUProperty()
5404 PrData = endian::read32<ELFT::Endianness>(Data.data()); in getGNUProperty()
5419 template <typename ELFT>
5421 using Elf_Word = typename ELFT::Word; in getGNUPropertyList()
5430 uint64_t PaddedSize = alignTo(DataSize, sizeof(typename ELFT::uint)); in getGNUPropertyList()
5439 getGNUProperty<ELFT>(Type, DataSize, Arr.take_front(PaddedSize))); in getGNUPropertyList()
5455 template <typename ELFT> static GNUAbiTag getGNUAbiTag(ArrayRef<uint8_t> Desc) { in getGNUAbiTag()
5456 typedef typename ELFT::Word Elf_Word; in getGNUAbiTag()
5489 template <typename ELFT>
5497 const GNUAbiTag &AbiTag = getGNUAbiTag<ELFT>(Desc); in printGNUNote()
5513 for (const std::string &Property : getGNUPropertyList<ELFT>(Desc)) in printGNUNote()
5571 template <class ELFT>
5572 void GNUELFDumper<ELFT>::printMemtag( in printMemtag()
5598 template <typename ELFT>
5632 template <typename ELFT>
5642 utostr(endian::read32<ELFT::Endianness>(Desc.data()))}; in getFreeBSDNote()
5648 unsigned Value = endian::read32<ELFT::Endianness>(Desc.data()); in getFreeBSDNote()
5668 template <typename ELFT>
5772 template <typename ELFT>
5869 template <typename ELFT>
5872 const int FieldWidth = ELFT::Is64Bits ? 18 : 10; in printCoreNote()
6041 template <class ELFT>
6042 StringRef getNoteTypeName(const typename ELFT::Note &Note, unsigned ELFType) { in getNoteTypeName()
6092 template <class ELFT>
6094 const ELFDumper<ELFT> &Dumper, in processNotesHelper()
6095 llvm::function_ref<void(std::optional<StringRef>, typename ELFT::Off, in processNotesHelper()
6096 typename ELFT::Addr, size_t)> in processNotesHelper()
6098 llvm::function_ref<Error(const typename ELFT::Note &, bool)> ProcessNoteFn, in processNotesHelper()
6100 const ELFFile<ELFT> &Obj = Dumper.getElfObject().getELFFile(); in processNotesHelper()
6103 ArrayRef<typename ELFT::Shdr> Sections = cantFail(Obj.sections()); in processNotesHelper()
6105 for (const typename ELFT::Shdr &S : Sections) { in processNotesHelper()
6112 for (const typename ELFT::Note Note : Obj.notes(S, Err)) { in processNotesHelper()
6128 Expected<ArrayRef<typename ELFT::Phdr>> PhdrsOrErr = Obj.program_headers(); in processNotesHelper()
6137 const typename ELFT::Phdr &P = (*PhdrsOrErr)[I]; in processNotesHelper()
6143 for (const typename ELFT::Note Note : Obj.notes(P, Err)) { in processNotesHelper()
6159 template <class ELFT> void GNUELFDumper<ELFT>::printNotes() { in printNotes()
6163 const typename ELFT::Off Offset, in printNotes()
6164 const typename ELFT::Addr Size, size_t Al) { in printNotes()
6194 getNoteTypeName<ELFT>(Note, this->Obj.getHeader().e_type); in printNotes()
6203 if (printGNUNote<ELFT>(OS, Type, Descriptor)) in printNotes()
6207 getFreeBSDNote<ELFT>(Type, Descriptor, IsCore)) { in printNotes()
6212 const AMDNote N = getAMDNote<ELFT>(Type, Descriptor); in printNotes()
6218 const AMDGPUNote N = getAMDGPUNote<ELFT>(Type, Descriptor); in printNotes()
6224 if (printLLVMOMPOFFLOADNote<ELFT>(OS, Type, Descriptor)) in printNotes()
6229 Descriptor, ELFT::Endianness == llvm::endianness::little, in printNotes()
6232 printCoreNote<ELFT>(OS, *NoteOrErr); in printNotes()
6255 template <class ELFT>
6257 ELFDumper<ELFT>::getMemtagGlobalsSectionContents(uint64_t ExpectedAddr) { in getMemtagGlobalsSectionContents()
6258 for (const typename ELFT::Shdr &Sec : cantFail(Obj.sections())) { in getMemtagGlobalsSectionContents()
6287 template <typename ELFT> void ELFDumper<ELFT>::printMemtag() { in printMemtag()
6292 for (const typename ELFT::Dyn &Entry : dynamic_table()) { in printMemtag()
6325 [](std::optional<StringRef>, const typename ELFT::Off, in printMemtag()
6326 const typename ELFT::Addr, size_t) {}, in printMemtag()
6379 template <class ELFT> void GNUELFDumper<ELFT>::printELFLinkerOptions() { in printELFLinkerOptions()
6383 template <class ELFT>
6384 void ELFDumper<ELFT>::printDependentLibsHelper( in printDependentLibsHelper()
6420 template <class ELFT>
6421 void ELFDumper<ELFT>::forEachRelocationDo( in forEachRelocationDo()
6423 llvm::function_ref<void(const Relocation<ELFT> &, unsigned, in forEachRelocationDo() argument
6453 RelRelaFn(Relocation<ELFT>(R, IsMips64EL), RelNdx++, Sec, SymTab); in forEachRelocationDo()
6461 RelRelaFn(Relocation<ELFT>(R, IsMips64EL), RelNdx++, Sec, SymTab); in forEachRelocationDo()
6479 RelRelaFn(Relocation<ELFT>(R, IsMips64EL), RelNdx++, Sec, in forEachRelocationDo()
6486 RelRelaFn(Relocation<ELFT>(R, false), RelNdx++, Sec, SymTab); in forEachRelocationDo()
6488 RelRelaFn(Relocation<ELFT>(R, false), RelNdx++, Sec, SymTab); in forEachRelocationDo()
6498 RelRelaFn(Relocation<ELFT>(R, IsMips64EL), RelNdx++, Sec, SymTab); in forEachRelocationDo()
6506 template <class ELFT>
6507 StringRef ELFDumper<ELFT>::getPrintableSectionName(const Elf_Shdr &Sec) const { in getPrintableSectionName()
6518 template <class ELFT> void GNUELFDumper<ELFT>::printDependentLibs() { in printDependentLibs()
6553 template <class ELFT>
6554 SmallVector<uint32_t> ELFDumper<ELFT>::getSymbolIndexesForFunctionAddress( in getSymbolIndexesForFunctionAddress()
6619 template <class ELFT>
6620 bool ELFDumper<ELFT>::printFunctionStackSize( in printFunctionStackSize()
6653 template <class ELFT>
6654 void GNUELFDumper<ELFT>::printStackSizeEntry(uint64_t Size, in printStackSizeEntry()
6663 template <class ELFT>
6664 void ELFDumper<ELFT>::printStackSize(const Relocation<ELFT> &R, in printStackSize()
6674 Expected<RelSymbol<ELFT>> TargetOrErr = this->getRelocationTarget(R, SymTab); in printStackSize()
6716 template <class ELFT>
6717 void ELFDumper<ELFT>::printNonRelocatableStackSizes( in printNonRelocatableStackSizes()
6746 template <class ELFT>
6747 void ELFDumper<ELFT>::printRelocatableStackSizes( in printRelocatableStackSizes()
6797 *RelocSec, [&](const Relocation<ELFT> &R, unsigned Ndx, in printRelocatableStackSizes()
6813 template <class ELFT>
6814 void GNUELFDumper<ELFT>::printStackSizes() { in printStackSizes()
6835 template <class ELFT>
6836 void GNUELFDumper<ELFT>::printMipsGOT(const MipsGOTParser<ELFT> &Parser) { in printMipsGOT()
6837 size_t Bias = ELFT::Is64Bits ? 8 : 0; in printMipsGOT()
6854 if (ELFT::Is64Bits) in printMipsGOT()
6865 if (ELFT::Is64Bits) in printMipsGOT()
6879 if (ELFT::Is64Bits) in printMipsGOT()
6916 template <class ELFT>
6917 void GNUELFDumper<ELFT>::printMipsPLT(const MipsGOTParser<ELFT> &Parser) { in printMipsPLT()
6918 size_t Bias = ELFT::Is64Bits ? 8 : 0; in printMipsPLT()
6966 template <class ELFT>
6967 Expected<const Elf_Mips_ABIFlags<ELFT> *>
6968 getMipsAbiFlagsSection(const ELFDumper<ELFT> &Dumper) { in getMipsAbiFlagsSection()
6969 const typename ELFT::Shdr *Sec = Dumper.findSectionByName(".MIPS.abiflags"); in getMipsAbiFlagsSection()
6979 if (DataOrErr->size() != sizeof(Elf_Mips_ABIFlags<ELFT>)) in getMipsAbiFlagsSection()
6982 return reinterpret_cast<const Elf_Mips_ABIFlags<ELFT> *>(DataOrErr->data()); in getMipsAbiFlagsSection()
6985 template <class ELFT> void GNUELFDumper<ELFT>::printMipsABIFlags() { in printMipsABIFlags()
6986 const Elf_Mips_ABIFlags<ELFT> *Flags = nullptr; in printMipsABIFlags()
6987 if (Expected<const Elf_Mips_ABIFlags<ELFT> *> SecOrErr = in printMipsABIFlags()
7018 template <class ELFT> void LLVMELFDumper<ELFT>::printFileHeaders() { in printFileHeaders()
7143 template <class ELFT> void LLVMELFDumper<ELFT>::printGroupSections() { in printGroupSections()
7174 template <class ELFT>
7175 std::string LLVMELFDumper<ELFT>::getGroupSectionHeaderName() const { in getGroupSectionHeaderName()
7179 template <class ELFT>
7180 void LLVMELFDumper<ELFT>::printSectionGroupMembers(StringRef Name, in printSectionGroupMembers()
7185 template <class ELFT> void LLVMELFDumper<ELFT>::printRelocations() { in printRelocations()
7189 if (!isRelocationSec<ELFT>(Sec, this->Obj.getHeader())) in printRelocations()
7198 template <class ELFT>
7199 void LLVMELFDumper<ELFT>::printExpandedRelRelaReloc(const Relocation<ELFT> &R, in printExpandedRelRelaReloc()
7210 template <class ELFT>
7211 void LLVMELFDumper<ELFT>::printDefaultRelRelaReloc(const Relocation<ELFT> &R, in printDefaultRelRelaReloc()
7222 template <class ELFT>
7223 void LLVMELFDumper<ELFT>::printRelocationSectionInfo(const Elf_Shdr &Sec, in printRelocationSectionInfo()
7230 template <class ELFT> void LLVMELFDumper<ELFT>::printEmptyGroupMessage() const { in printEmptyGroupMessage()
7234 template <class ELFT>
7235 void LLVMELFDumper<ELFT>::printRelRelaReloc(const Relocation<ELFT> &R, in printRelRelaReloc()
7236 const RelSymbol<ELFT> &RelSym) { in printRelRelaReloc()
7250 template <class ELFT> void LLVMELFDumper<ELFT>::printSectionHeaders() { in printSectionHeaders()
7287 typename ELFT::SymRange Symbols = unwrapOrError( in printSectionHeaders()
7311 template <class ELFT>
7312 void LLVMELFDumper<ELFT>::printSymbolSection( in printSymbolSection()
7362 template <class ELFT>
7363 void LLVMELFDumper<ELFT>::printSymbolOtherField(const Elf_Sym &Symbol) const { in printSymbolOtherField()
7369 template <class ELFT>
7370 void LLVMELFDumper<ELFT>::printZeroSymbolOtherField( in printZeroSymbolOtherField()
7378 template <class ELFT>
7379 void LLVMELFDumper<ELFT>::printSymbol(const Elf_Sym &Symbol, unsigned SymIndex, in printSymbol()
7406 template <class ELFT>
7407 void LLVMELFDumper<ELFT>::printSymbols(bool PrintSymbols, in printSymbols()
7420 template <class ELFT> void LLVMELFDumper<ELFT>::printDynamicTable() { in printDynamicTable()
7431 W.startLine() << " Tag" << std::string(ELFT::Is64Bits ? 16 : 8, ' ') in printDynamicTable()
7438 W.startLine() << " " << format_hex(Tag, ELFT::Is64Bits ? 18 : 10, true) in printDynamicTable()
7447 template <class ELFT>
7448 void JSONELFDumper<ELFT>::printAuxillaryDynamicTableEntryInfo( in printAuxillaryDynamicTableEntryInfo()
7491 template <class ELFT> void JSONELFDumper<ELFT>::printDynamicTable() { in printDynamicTable()
7504 template <class ELFT> void LLVMELFDumper<ELFT>::printDynamicRelocations() { in printDynamicRelocations()
7512 template <class ELFT>
7513 void LLVMELFDumper<ELFT>::printProgramHeaders( in printProgramHeaders()
7521 template <class ELFT> void LLVMELFDumper<ELFT>::printProgramHeaders() { in printProgramHeaders()
7547 template <class ELFT>
7548 void LLVMELFDumper<ELFT>::printVersionSymbolSection(const Elf_Shdr *Sec) { in printVersionSymbolSection()
7581 template <class ELFT>
7582 void LLVMELFDumper<ELFT>::printVersionDefinitionSection(const Elf_Shdr *Sec) { in printVersionDefinitionSection()
7606 template <class ELFT>
7607 void LLVMELFDumper<ELFT>::printVersionDependencySection(const Elf_Shdr *Sec) { in printVersionDependencySection()
7636 template <class ELFT>
7637 void LLVMELFDumper<ELFT>::printHashHistogramStats(size_t NBucket, in printHashHistogramStats()
7661 template <class ELFT>
7662 static bool getSymbolIndices(const typename ELFT::Shdr *CGRelSection, in getSymbolIndices()
7663 const ELFFile<ELFT> &Obj, in getSymbolIndices()
7664 const LLVMELFDumper<ELFT> *Dumper, in getSymbolIndices()
7673 typename ELFT::RelRange CGProfileRel; in getSymbolIndices()
7674 Expected<typename ELFT::RelRange> CGProfileRelOrError = in getSymbolIndices()
7684 for (const typename ELFT::Rel &Rel : CGProfileRel) in getSymbolIndices()
7690 typename ELFT::RelaRange CGProfileRela; in getSymbolIndices()
7691 Expected<typename ELFT::RelaRange> CGProfileRelaOrError = in getSymbolIndices()
7701 for (const typename ELFT::Rela &Rela : CGProfileRela) in getSymbolIndices()
7708 template <class ELFT> void LLVMELFDumper<ELFT>::printCGProfile() { in printCGProfile()
7736 getSymbolIndices<ELFT>(CGRelSection, this->Obj, this, SymbolIndices); in printCGProfile()
7758 template <class ELFT>
7759 void LLVMELFDumper<ELFT>::printBBAddrMaps(bool PrettyPGOAnalysis) { in printBBAddrMaps()
7761 using Elf_Shdr = typename ELFT::Shdr; in printBBAddrMaps()
7869 template <class ELFT> void LLVMELFDumper<ELFT>::printAddrsig() { in printAddrsig()
7885 template <typename ELFT>
7893 const GNUAbiTag &AbiTag = getGNUAbiTag<ELFT>(Desc); in printGNUNoteLLVMStyle()
7912 for (const std::string &Property : getGNUPropertyList<ELFT>(Desc)) in printGNUNoteLLVMStyle()
7930 template <class ELFT>
7931 void LLVMELFDumper<ELFT>::printMemtag( in printMemtag()
7959 template <typename ELFT>
7991 template <class ELFT> void LLVMELFDumper<ELFT>::printNotes() { in printNotes()
7998 const typename ELFT::Off Offset, in printNotes()
7999 const typename ELFT::Addr Size, size_t Al) { in printNotes()
8024 getNoteTypeName<ELFT>(Note, this->Obj.getHeader().e_type); in printNotes()
8034 if (printGNUNoteLLVMStyle<ELFT>(Type, Descriptor, W)) in printNotes()
8038 getFreeBSDNote<ELFT>(Type, Descriptor, IsCore)) { in printNotes()
8043 const AMDNote N = getAMDNote<ELFT>(Type, Descriptor); in printNotes()
8049 const AMDGPUNote N = getAMDGPUNote<ELFT>(Type, Descriptor); in printNotes()
8055 if (printLLVMOMPOFFLOADNoteLLVMStyle<ELFT>(Type, Descriptor, W)) in printNotes()
8060 Descriptor, ELFT::Endianness == llvm::endianness::little, in printNotes()
8083 template <class ELFT> void LLVMELFDumper<ELFT>::printELFLinkerOptions() { in printELFLinkerOptions()
8127 template <class ELFT> void LLVMELFDumper<ELFT>::printDependentLibs() { in printDependentLibs()
8134 template <class ELFT> void LLVMELFDumper<ELFT>::printStackSizes() { in printStackSizes()
8142 template <class ELFT>
8143 void LLVMELFDumper<ELFT>::printStackSizeEntry(uint64_t Size, in printStackSizeEntry()
8150 template <class ELFT>
8151 void LLVMELFDumper<ELFT>::printMipsGOT(const MipsGOTParser<ELFT> &Parser) { in printMipsGOT()
8212 template <class ELFT>
8213 void LLVMELFDumper<ELFT>::printMipsPLT(const MipsGOTParser<ELFT> &Parser) { in printMipsPLT()
8258 template <class ELFT> void LLVMELFDumper<ELFT>::printMipsABIFlags() { in printMipsABIFlags()
8259 const Elf_Mips_ABIFlags<ELFT> *Flags; in printMipsABIFlags()
8260 if (Expected<const Elf_Mips_ABIFlags<ELFT> *> SecOrErr = in printMipsABIFlags()
8292 template <class ELFT>
8293 void JSONELFDumper<ELFT>::printFileSummary(StringRef FileStr, ObjectFile &Obj, in printFileSummary()
8307 template <class ELFT>
8308 void JSONELFDumper<ELFT>::printZeroSymbolOtherField( in printZeroSymbolOtherField()
8315 template <class ELFT>
8316 void JSONELFDumper<ELFT>::printDefaultRelRelaReloc(const Relocation<ELFT> &R, in printDefaultRelRelaReloc()
8322 template <class ELFT>
8323 void JSONELFDumper<ELFT>::printRelocationSectionInfo(const Elf_Shdr &Sec, in printRelocationSectionInfo()
8332 template <class ELFT>
8333 std::string JSONELFDumper<ELFT>::getGroupSectionHeaderName() const { in getGroupSectionHeaderName()
8337 template <class ELFT>
8338 void JSONELFDumper<ELFT>::printSectionGroupMembers(StringRef Name, in printSectionGroupMembers()
8345 template <class ELFT> void JSONELFDumper<ELFT>::printEmptyGroupMessage() const { in printEmptyGroupMessage()