diff options
Diffstat (limited to 'llvm')
-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; |