# 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
# 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
printFields(OS, "Section header string table index:", Str);
}
-template <class ELFT>
-static StringRef tryGetSectionName(const ELFFile<ELFT> &Obj,
- const typename ELFT::Shdr &Sec,
- DumpStyle<ELFT> &Dump) {
- if (Expected<StringRef> 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 <class ELFT> std::vector<GroupSection> DumpStyle<ELFT>::getGroups() {
auto GetSignature = [&](const Elf_Sym &Sym, unsigned SymNdx,
const Elf_Shdr &Symtab) -> StringRef {
toString(ContentsOrErr.takeError())));
}
- Ret.push_back({tryGetSectionName(Obj, Sec, *this),
+ Ret.push_back({getPrintableSectionName(Sec),
maybeDemangle(Signature),
Sec.sh_name,
I - 1,
std::vector<GroupMember> &GM = Ret.back().Members;
for (uint32_t Ndx : Data.slice(1)) {
if (Expected<const Elf_Shdr *> 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) +