aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/COFFObjectFile.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2014-02-05 05:19:19 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2014-02-05 05:19:19 +0000
commit22fe9c1e882bb2c90de7f611a7b62a4548d0b696 (patch)
tree5a11c6d367284bc786b383b6b60e25f702b1735c /llvm/lib/Object/COFFObjectFile.cpp
parent4ccfe392ed2cbe1670ed33819ea57efe42b9c3ba (diff)
downloadllvm-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.cpp10
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)