diff options
author | Michael J. Spencer <bigcheesegs@gmail.com> | 2011-10-18 19:31:59 +0000 |
---|---|---|
committer | Michael J. Spencer <bigcheesegs@gmail.com> | 2011-10-18 19:31:59 +0000 |
commit | 5e3a082c797f0214d44858b05a13543872dfd413 (patch) | |
tree | bea812217c9676ce4a9201dd13d917e6ca443976 | |
parent | 8c39c9647da4f375e4f89bd417d86f5c3ff6dfa5 (diff) | |
download | external_llvm-5e3a082c797f0214d44858b05a13543872dfd413.zip external_llvm-5e3a082c797f0214d44858b05a13543872dfd413.tar.gz external_llvm-5e3a082c797f0214d44858b05a13543872dfd413.tar.bz2 |
Object/COFF: Change type from a struct to a uint16_t. The struct would be
incorrect for bigendian systems.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142403 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/Object/COFF.h | 13 | ||||
-rw-r--r-- | lib/Object/COFFObjectFile.cpp | 2 |
2 files changed, 10 insertions, 5 deletions
diff --git a/include/llvm/Object/COFF.h b/include/llvm/Object/COFF.h index db05c98..1f577c7 100644 --- a/include/llvm/Object/COFF.h +++ b/include/llvm/Object/COFF.h @@ -45,13 +45,18 @@ struct coff_symbol { support::ulittle32_t Value; support::little16_t SectionNumber; - struct { - support::ulittle8_t BaseType; - support::ulittle8_t ComplexType; - } Type; + support::ulittle16_t Type; support::ulittle8_t StorageClass; support::ulittle8_t NumberOfAuxSymbols; + + uint8_t getBaseType() const { + return Type & 0x0F; + } + + uint8_t getComplexType() const { + return (Type & 0xF0) >> 4; + } }; struct coff_section { diff --git a/lib/Object/COFFObjectFile.cpp b/lib/Object/COFFObjectFile.cpp index 1335652..e52a31f 100644 --- a/lib/Object/COFFObjectFile.cpp +++ b/lib/Object/COFFObjectFile.cpp @@ -147,7 +147,7 @@ error_code COFFObjectFile::getSymbolType(DataRefImpl Symb, symb->SectionNumber == COFF::IMAGE_SYM_UNDEFINED) { Result = SymbolRef::ST_External; } else { - if (symb->Type.ComplexType == COFF::IMAGE_SYM_DTYPE_FUNCTION) { + if (symb->getComplexType() == COFF::IMAGE_SYM_DTYPE_FUNCTION) { Result = SymbolRef::ST_Function; } else { char Type; |