diff options
author | Rui Ueyama <ruiu@google.com> | 2014-03-18 23:37:53 +0000 |
---|---|---|
committer | Rui Ueyama <ruiu@google.com> | 2014-03-18 23:37:53 +0000 |
commit | cae25dcbf7347d1a04f8746aedd6d6600b528a40 (patch) | |
tree | 88bd9114a82d47fa0d113343e395db8ec212e90e /lib | |
parent | 2c4507e850d353433a525fb763df05dd8a407173 (diff) | |
download | llvm-cae25dcbf7347d1a04f8746aedd6d6600b528a40.tar.gz llvm-cae25dcbf7347d1a04f8746aedd6d6600b528a40.tar.bz2 llvm-cae25dcbf7347d1a04f8746aedd6d6600b528a40.tar.xz |
Object/COFF: Add function to check if section number is reserved one.
Differential Revision: http://llvm-reviews.chandlerc.com/D3103
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204199 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Object/COFFObjectFile.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/lib/Object/COFFObjectFile.cpp b/lib/Object/COFFObjectFile.cpp index 7f66c6a29c..039bc4ef48 100644 --- a/lib/Object/COFFObjectFile.cpp +++ b/lib/Object/COFFObjectFile.cpp @@ -16,6 +16,7 @@ #include "llvm/ADT/SmallString.h" #include "llvm/ADT/StringSwitch.h" #include "llvm/ADT/Triple.h" +#include "llvm/Support/COFF.h" #include "llvm/Support/Debug.h" #include "llvm/Support/raw_ostream.h" #include <cctype> @@ -177,7 +178,7 @@ error_code COFFObjectFile::getSymbolType(DataRefImpl Ref, Result = SymbolRef::ST_Function; } else { uint32_t Characteristics = 0; - if (Symb->SectionNumber > 0) { + if (!COFF::isReservedSectionNumber(Symb->SectionNumber)) { const coff_section *Section = NULL; if (error_code EC = getSection(Symb->SectionNumber, Section)) return EC; @@ -239,9 +240,9 @@ error_code COFFObjectFile::getSymbolSize(DataRefImpl Ref, error_code COFFObjectFile::getSymbolSection(DataRefImpl Ref, section_iterator &Result) const { const coff_symbol *Symb = toSymb(Ref); - if (Symb->SectionNumber <= COFF::IMAGE_SYM_UNDEFINED) + if (COFF::isReservedSectionNumber(Symb->SectionNumber)) { Result = section_end(); - else { + } else { const coff_section *Sec = 0; if (error_code EC = getSection(Symb->SectionNumber, Sec)) return EC; DataRefImpl Ref; @@ -721,9 +722,7 @@ error_code COFFObjectFile::getDataDirectory(uint32_t Index, error_code COFFObjectFile::getSection(int32_t Index, const coff_section *&Result) const { // Check for special index values. - if (Index == COFF::IMAGE_SYM_UNDEFINED || - Index == COFF::IMAGE_SYM_ABSOLUTE || - Index == COFF::IMAGE_SYM_DEBUG) + if (COFF::isReservedSectionNumber(Index)) Result = NULL; else if (Index > 0 && Index <= COFFHeader->NumberOfSections) // We already verified the section table data, so no need to check again. |