summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael J. Spencer <bigcheesegs@gmail.com>2011-10-17 23:55:06 +0000
committerMichael J. Spencer <bigcheesegs@gmail.com>2011-10-17 23:55:06 +0000
commit206d17cf605293f1c12d8bfa8cf72826a29b253f (patch)
tree26c4f23c70160db482d564b5043fe1b9124fa3b6
parent9b2b812fea4df160437e7b7d56e38f6335189ad0 (diff)
downloadllvm-206d17cf605293f1c12d8bfa8cf72826a29b253f.tar.gz
llvm-206d17cf605293f1c12d8bfa8cf72826a29b253f.tar.bz2
llvm-206d17cf605293f1c12d8bfa8cf72826a29b253f.tar.xz
Object: Add some types to SymbolRef::Type.
Some of these can be true at the same time and there are a lot to add, so this should be turned into a bitfield. Some of the other accessors should probably be folded into this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142318 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/Object/ObjectFile.h4
-rw-r--r--lib/Object/ELFObjectFile.cpp6
2 files changed, 9 insertions, 1 deletions
diff --git a/include/llvm/Object/ObjectFile.h b/include/llvm/Object/ObjectFile.h
index 5581225b53..331ed7caa0 100644
--- a/include/llvm/Object/ObjectFile.h
+++ b/include/llvm/Object/ObjectFile.h
@@ -166,9 +166,11 @@ public:
}
enum Type {
- ST_Function,
ST_Data,
+ ST_Debug,
ST_External, // Defined in another object file
+ ST_File,
+ ST_Function,
ST_Other
};
diff --git a/lib/Object/ELFObjectFile.cpp b/lib/Object/ELFObjectFile.cpp
index a5e3910d16..97ba9167a5 100644
--- a/lib/Object/ELFObjectFile.cpp
+++ b/lib/Object/ELFObjectFile.cpp
@@ -621,6 +621,12 @@ error_code ELFObjectFile<target_endianness, is64Bits>
}
switch (symb->getType()) {
+ case ELF::STT_SECTION:
+ Result = SymbolRef::ST_Debug;
+ break;
+ case ELF::STT_FILE:
+ Result = SymbolRef::ST_File;
+ break;
case ELF::STT_FUNC:
Result = SymbolRef::ST_Function;
break;