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 | 097be9f63c36e466fbbbf7a32fdbefe5d61298a5 (patch) | |
tree | 98943d47423c4cf2190b457f14d115a0d30e41bf | |
parent | f5df537d2619d3b22228161453d5d836b5deab32 (diff) | |
download | bcm5719-llvm-097be9f63c36e466fbbbf7a32fdbefe5d61298a5.tar.gz bcm5719-llvm-097be9f63c36e466fbbbf7a32fdbefe5d61298a5.zip |
Object/COFF: Change type from a struct to a uint16_t. The struct would be
incorrect for bigendian systems.
llvm-svn: 142403
-rw-r--r-- | llvm/include/llvm/Object/COFF.h | 13 | ||||
-rw-r--r-- | llvm/lib/Object/COFFObjectFile.cpp | 2 |
2 files changed, 10 insertions, 5 deletions
diff --git a/llvm/include/llvm/Object/COFF.h b/llvm/include/llvm/Object/COFF.h index db05c98aafa..1f577c74339 100644 --- a/llvm/include/llvm/Object/COFF.h +++ b/llvm/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/llvm/lib/Object/COFFObjectFile.cpp b/llvm/lib/Object/COFFObjectFile.cpp index 13356520d7b..e52a31f67f9 100644 --- a/llvm/lib/Object/COFFObjectFile.cpp +++ b/llvm/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; |