diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2014-02-05 05:19:19 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2014-02-05 05:19:19 +0000 |
commit | 22fe9c1e882bb2c90de7f611a7b62a4548d0b696 (patch) | |
tree | 5a11c6d367284bc786b383b6b60e25f702b1735c /llvm/lib/Object/COFFObjectFile.cpp | |
parent | 4ccfe392ed2cbe1670ed33819ea57efe42b9c3ba (diff) | |
download | llvm-22fe9c1e882bb2c90de7f611a7b62a4548d0b696.zip llvm-22fe9c1e882bb2c90de7f611a7b62a4548d0b696.tar.gz llvm-22fe9c1e882bb2c90de7f611a7b62a4548d0b696.tar.bz2 |
Use the information provided by getFlags to unify some code in llvm-nm.
It is not clear how much we should try to expose in getFlags. For example,
should there be a SF_Object and a SF_Text?
But for information that is already being exposed, we may as well use it in
llvm-nm.
llvm-svn: 200820
Diffstat (limited to 'llvm/lib/Object/COFFObjectFile.cpp')
-rw-r--r-- | llvm/lib/Object/COFFObjectFile.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/llvm/lib/Object/COFFObjectFile.cpp b/llvm/lib/Object/COFFObjectFile.cpp index 3475ac5..a604acd 100644 --- a/llvm/lib/Object/COFFObjectFile.cpp +++ b/llvm/lib/Object/COFFObjectFile.cpp @@ -161,9 +161,13 @@ uint32_t COFFObjectFile::getSymbolFlags(DataRefImpl Ref) const { // TODO: Correctly set SF_FormatSpecific, SF_Common - if (Symb->StorageClass == COFF::IMAGE_SYM_CLASS_EXTERNAL && - Symb->SectionNumber == COFF::IMAGE_SYM_UNDEFINED) - Result |= SymbolRef::SF_Undefined; + if (Symb->SectionNumber == COFF::IMAGE_SYM_UNDEFINED) { + if (Symb->Value == 0) + Result |= SymbolRef::SF_Undefined; + else + Result |= SymbolRef::SF_Common; + } + // TODO: This are certainly too restrictive. if (Symb->StorageClass == COFF::IMAGE_SYM_CLASS_EXTERNAL) |