[llvm] bf809cd - [NFC][object] Change the input parameter of the method isDebugSection.
via llvm-commits
llvm-commits at lists.llvm.org
Wed May 26 01:48:28 PDT 2021
Author: Esme-Yi
Date: 2021-05-26T08:47:53Z
New Revision: bf809cd165f4ea1b8ef6aabc8e41e29747b4d2c7
URL: https://github.com/llvm/llvm-project/commit/bf809cd165f4ea1b8ef6aabc8e41e29747b4d2c7
DIFF: https://github.com/llvm/llvm-project/commit/bf809cd165f4ea1b8ef6aabc8e41e29747b4d2c7.diff
LOG: [NFC][object] Change the input parameter of the method isDebugSection.
Summary: This is a NFC patch to change the input parameter of the method SectionRef::isDebugSection(), by replacing the StringRef SectionName with DataRefImpl Sec. This allows us to determine if a section is debug type in more ways than just by section name.
Reviewed By: jhenderson
Differential Revision: https://reviews.llvm.org/D102601
Added:
Modified:
llvm/include/llvm/Object/COFF.h
llvm/include/llvm/Object/ELFObjectFile.h
llvm/include/llvm/Object/MachO.h
llvm/include/llvm/Object/ObjectFile.h
llvm/lib/Object/COFFObjectFile.cpp
llvm/lib/Object/MachOObjectFile.cpp
llvm/lib/Object/ObjectFile.cpp
llvm/tools/llvm-dwarfdump/SectionSizes.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/Object/COFF.h b/llvm/include/llvm/Object/COFF.h
index 2e8ff989580a1..3add3811069b4 100644
--- a/llvm/include/llvm/Object/COFF.h
+++ b/llvm/include/llvm/Object/COFF.h
@@ -959,7 +959,7 @@ class COFFObjectFile : public ObjectFile {
bool isSectionData(DataRefImpl Sec) const override;
bool isSectionBSS(DataRefImpl Sec) const override;
bool isSectionVirtual(DataRefImpl Sec) const override;
- bool isDebugSection(StringRef SectionName) const override;
+ bool isDebugSection(DataRefImpl Sec) const override;
relocation_iterator section_rel_begin(DataRefImpl Sec) const override;
relocation_iterator section_rel_end(DataRefImpl Sec) const override;
diff --git a/llvm/include/llvm/Object/ELFObjectFile.h b/llvm/include/llvm/Object/ELFObjectFile.h
index 4736fd398854a..97bc076c09c8d 100644
--- a/llvm/include/llvm/Object/ELFObjectFile.h
+++ b/llvm/include/llvm/Object/ELFObjectFile.h
@@ -289,7 +289,7 @@ template <class ELFT> class ELFObjectFile : public ELFObjectFileBase {
bool isSectionVirtual(DataRefImpl Sec) const override;
bool isBerkeleyText(DataRefImpl Sec) const override;
bool isBerkeleyData(DataRefImpl Sec) const override;
- bool isDebugSection(StringRef SectionName) const override;
+ bool isDebugSection(DataRefImpl Sec) const override;
relocation_iterator section_rel_begin(DataRefImpl Sec) const override;
relocation_iterator section_rel_end(DataRefImpl Sec) const override;
std::vector<SectionRef> dynamic_relocation_sections() const override;
@@ -928,7 +928,14 @@ bool ELFObjectFile<ELFT>::isBerkeleyData(DataRefImpl Sec) const {
}
template <class ELFT>
-bool ELFObjectFile<ELFT>::isDebugSection(StringRef SectionName) const {
+bool ELFObjectFile<ELFT>::isDebugSection(DataRefImpl Sec) const {
+ Expected<StringRef> SectionNameOrErr = getSectionName(Sec);
+ if (!SectionNameOrErr) {
+ // TODO: Report the error message properly.
+ consumeError(SectionNameOrErr.takeError());
+ return false;
+ }
+ StringRef SectionName = SectionNameOrErr.get();
return SectionName.startswith(".debug") ||
SectionName.startswith(".zdebug") || SectionName == ".gdb_index";
}
diff --git a/llvm/include/llvm/Object/MachO.h b/llvm/include/llvm/Object/MachO.h
index 7eb017397846d..d2ad12e98deb8 100644
--- a/llvm/include/llvm/Object/MachO.h
+++ b/llvm/include/llvm/Object/MachO.h
@@ -309,7 +309,7 @@ class MachOObjectFile : public ObjectFile {
bool isSectionBSS(DataRefImpl Sec) const override;
bool isSectionVirtual(DataRefImpl Sec) const override;
bool isSectionBitcode(DataRefImpl Sec) const override;
- bool isDebugSection(StringRef SectionName) const override;
+ bool isDebugSection(DataRefImpl Sec) const override;
/// When dsymutil generates the companion file, it strips all unnecessary
/// sections (e.g. everything in the _TEXT segment) by omitting their body
diff --git a/llvm/include/llvm/Object/ObjectFile.h b/llvm/include/llvm/Object/ObjectFile.h
index 27e40cbdbeced..c3f5fd18dba68 100644
--- a/llvm/include/llvm/Object/ObjectFile.h
+++ b/llvm/include/llvm/Object/ObjectFile.h
@@ -123,7 +123,7 @@ class SectionRef {
bool isBerkeleyData() const;
/// Whether this section is a debug section.
- bool isDebugSection(StringRef SectionName) const;
+ bool isDebugSection() const;
bool containsSymbol(SymbolRef S) const;
@@ -274,7 +274,7 @@ class ObjectFile : public SymbolicFile {
virtual bool isSectionStripped(DataRefImpl Sec) const;
virtual bool isBerkeleyText(DataRefImpl Sec) const;
virtual bool isBerkeleyData(DataRefImpl Sec) const;
- virtual bool isDebugSection(StringRef SectionName) const;
+ virtual bool isDebugSection(DataRefImpl Sec) const;
virtual relocation_iterator section_rel_begin(DataRefImpl Sec) const = 0;
virtual relocation_iterator section_rel_end(DataRefImpl Sec) const = 0;
virtual Expected<section_iterator> getRelocatedSection(DataRefImpl Sec) const;
@@ -504,8 +504,8 @@ inline bool SectionRef::isBerkeleyData() const {
return OwningObject->isBerkeleyData(SectionPimpl);
}
-inline bool SectionRef::isDebugSection(StringRef SectionName) const {
- return OwningObject->isDebugSection(SectionName);
+inline bool SectionRef::isDebugSection() const {
+ return OwningObject->isDebugSection(SectionPimpl);
}
inline relocation_iterator SectionRef::relocation_begin() const {
diff --git a/llvm/lib/Object/COFFObjectFile.cpp b/llvm/lib/Object/COFFObjectFile.cpp
index 6e9a8eb35dcfb..354b3c0d5577c 100644
--- a/llvm/lib/Object/COFFObjectFile.cpp
+++ b/llvm/lib/Object/COFFObjectFile.cpp
@@ -328,7 +328,14 @@ bool COFFObjectFile::isSectionBSS(DataRefImpl Ref) const {
// The .debug sections are the only debug sections for COFF
// (\see MCObjectFileInfo.cpp).
-bool COFFObjectFile::isDebugSection(StringRef SectionName) const {
+bool COFFObjectFile::isDebugSection(DataRefImpl Ref) const {
+ Expected<StringRef> SectionNameOrErr = getSectionName(Ref);
+ if (!SectionNameOrErr) {
+ // TODO: Report the error message properly.
+ consumeError(SectionNameOrErr.takeError());
+ return false;
+ }
+ StringRef SectionName = SectionNameOrErr.get();
return SectionName.startswith(".debug");
}
diff --git a/llvm/lib/Object/MachOObjectFile.cpp b/llvm/lib/Object/MachOObjectFile.cpp
index 498e99bdb828d..475d577f175f5 100644
--- a/llvm/lib/Object/MachOObjectFile.cpp
+++ b/llvm/lib/Object/MachOObjectFile.cpp
@@ -2035,7 +2035,14 @@ bool MachOObjectFile::isSectionBSS(DataRefImpl Sec) const {
SectionType == MachO::S_GB_ZEROFILL);
}
-bool MachOObjectFile::isDebugSection(StringRef SectionName) const {
+bool MachOObjectFile::isDebugSection(DataRefImpl Sec) const {
+ Expected<StringRef> SectionNameOrErr = getSectionName(Sec);
+ if (!SectionNameOrErr) {
+ // TODO: Report the error message properly.
+ consumeError(SectionNameOrErr.takeError());
+ return false;
+ }
+ StringRef SectionName = SectionNameOrErr.get();
return SectionName.startswith("__debug") ||
SectionName.startswith("__zdebug") ||
SectionName.startswith("__apple") || SectionName == "__gdb_index" ||
diff --git a/llvm/lib/Object/ObjectFile.cpp b/llvm/lib/Object/ObjectFile.cpp
index cf09a66d9c7d5..7b17c8e00ece9 100644
--- a/llvm/lib/Object/ObjectFile.cpp
+++ b/llvm/lib/Object/ObjectFile.cpp
@@ -94,9 +94,7 @@ bool ObjectFile::isBerkeleyData(DataRefImpl Sec) const {
return isSectionData(Sec);
}
-bool ObjectFile::isDebugSection(StringRef SectionName) const {
- return false;
-}
+bool ObjectFile::isDebugSection(DataRefImpl Sec) const { return false; }
Expected<section_iterator>
ObjectFile::getRelocatedSection(DataRefImpl Sec) const {
diff --git a/llvm/tools/llvm-dwarfdump/SectionSizes.cpp b/llvm/tools/llvm-dwarfdump/SectionSizes.cpp
index f13087ac39c19..731bf05fd7587 100644
--- a/llvm/tools/llvm-dwarfdump/SectionSizes.cpp
+++ b/llvm/tools/llvm-dwarfdump/SectionSizes.cpp
@@ -93,7 +93,7 @@ void dwarfdump::calculateSectionSizes(const ObjectFile &Obj,
LLVM_DEBUG(dbgs() << SectionName.str() << ": " << Section.getSize()
<< '\n');
- if (!Section.isDebugSection(SectionName))
+ if (!Section.isDebugSection())
continue;
Sizes.TotalDebugSectionsSize += Section.getSize();
More information about the llvm-commits
mailing list