Index: llvm/test/tools/llvm-readobj/ELF/groups.test =================================================================== --- llvm/test/tools/llvm-readobj/ELF/groups.test +++ llvm/test/tools/llvm-readobj/ELF/groups.test @@ -294,8 +294,8 @@ # RUN: FileCheck -DFILE=%t.name.o %s --check-prefix=NAME-GNU --implicit-check-not=warning: # NAME-LLVM: Groups { -# NAME-LLVM-NEXT: warning: '[[FILE]]': unable to get the name of the SHT_GROUP section with index 1: a section [index 1] has an invalid sh_name (0xaaaa) offset which goes past the end of the section name string table -# NAME-LLVM-NEXT: warning: '[[FILE]]': unable to get the name of the SHT_PROGBITS section with index 5: a section [index 5] has an invalid sh_name (0xbbbb) offset which goes past the end of the section name string table +# NAME-LLVM-NEXT: warning: '[[FILE]]': unable to get the name of SHT_GROUP section with index 1: a section [index 1] has an invalid sh_name (0xaaaa) offset which goes past the end of the section name string table +# NAME-LLVM-NEXT: warning: '[[FILE]]': unable to get the name of SHT_PROGBITS section with index 5: a section [index 5] has an invalid sh_name (0xbbbb) offset which goes past the end of the section name string table # NAME-LLVM-NEXT: Group { # NAME-LLVM-NEXT: Name: (43690) # NAME-LLVM-NEXT: Index: 1 @@ -322,8 +322,8 @@ # NAME-LLVM-NEXT: } # NAME-LLVM-NEXT: } -# NAME-GNU: warning: '[[FILE]]': unable to get the name of the SHT_GROUP section with index 1: a section [index 1] has an invalid sh_name (0xaaaa) offset which goes past the end of the section name string table -# NAME-GNU-NEXT: warning: '[[FILE]]': unable to get the name of the SHT_PROGBITS section with index 5: a section [index 5] has an invalid sh_name (0xbbbb) offset which goes past the end of the section name string table +# NAME-GNU: warning: '[[FILE]]': unable to get the name of SHT_GROUP section with index 1: a section [index 1] has an invalid sh_name (0xaaaa) offset which goes past the end of the section name string table +# NAME-GNU-NEXT: warning: '[[FILE]]': unable to get the name of SHT_PROGBITS section with index 5: a section [index 5] has an invalid sh_name (0xbbbb) offset which goes past the end of the section name string table # NAME-GNU-EMPTY: # NAME-GNU-NEXT: COMDAT group section [ 1] `' [foo] contains 2 sections: # NAME-GNU-NEXT: [Index] Name Index: llvm/tools/llvm-readobj/ELFDumper.cpp =================================================================== --- llvm/tools/llvm-readobj/ELFDumper.cpp +++ llvm/tools/llvm-readobj/ELFDumper.cpp @@ -3581,19 +3581,6 @@ printFields(OS, "Section header string table index:", Str); } -template -static StringRef tryGetSectionName(const ELFFile &Obj, - const typename ELFT::Shdr &Sec, - DumpStyle &Dump) { - if (Expected SecNameOrErr = Obj.getSectionName(Sec)) - return *SecNameOrErr; - else - Dump.reportUniqueWarning(createError("unable to get the name of the " + - describe(Obj, Sec) + ": " + - toString(SecNameOrErr.takeError()))); - return ""; -} - template std::vector DumpStyle::getGroups() { auto GetSignature = [&](const Elf_Sym &Sym, unsigned SymNdx, const Elf_Shdr &Symtab) -> StringRef { @@ -3655,7 +3642,7 @@ toString(ContentsOrErr.takeError()))); } - Ret.push_back({tryGetSectionName(Obj, Sec, *this), + Ret.push_back({getPrintableSectionName(Sec), maybeDemangle(Signature), Sec.sh_name, I - 1, @@ -3670,7 +3657,7 @@ std::vector &GM = Ret.back().Members; for (uint32_t Ndx : Data.slice(1)) { if (Expected SecOrErr = Obj.getSection(Ndx)) { - GM.push_back({tryGetSectionName(Obj, **SecOrErr, *this), Ndx}); + GM.push_back({getPrintableSectionName(**SecOrErr), Ndx}); } else { reportUniqueWarning( createError("unable to get the section with index " + Twine(Ndx) +