aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/ObjectFile.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2014-02-21 20:10:59 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2014-02-21 20:10:59 +0000
commitf12b82824aca2711b8b2e838341ae7e1b266d213 (patch)
tree98ccf79a54b142687abb093a95b434e519777966 /llvm/lib/Object/ObjectFile.cpp
parent38882022af8038f008fdbe0f9e0307f8c711c248 (diff)
downloadllvm-f12b82824aca2711b8b2e838341ae7e1b266d213.zip
llvm-f12b82824aca2711b8b2e838341ae7e1b266d213.tar.gz
llvm-f12b82824aca2711b8b2e838341ae7e1b266d213.tar.bz2
Add a SymbolicFile interface between Binary and ObjectFile.
This interface allows IRObjectFile to be implemented without having dummy methods for all section and segment related methods. Both llvm-ar and llvm-nm are changed to use it. Unfortunately the mangler is still not plugged in since it requires some refactoring to make a Module hold a DataLayout. llvm-svn: 201881
Diffstat (limited to 'llvm/lib/Object/ObjectFile.cpp')
-rw-r--r--llvm/lib/Object/ObjectFile.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/llvm/lib/Object/ObjectFile.cpp b/llvm/lib/Object/ObjectFile.cpp
index 2e6b9e6..923baa5 100644
--- a/llvm/lib/Object/ObjectFile.cpp
+++ b/llvm/lib/Object/ObjectFile.cpp
@@ -25,7 +25,16 @@ void ObjectFile::anchor() { }
ObjectFile::ObjectFile(unsigned int Type, MemoryBuffer *Source,
bool BufferOwned)
- : Binary(Type, Source, BufferOwned) {}
+ : SymbolicFile(Type, Source, BufferOwned) {}
+
+error_code ObjectFile::printSymbolName(raw_ostream &OS,
+ DataRefImpl Symb) const {
+ StringRef Name;
+ if (error_code EC = getSymbolName(Symb, Name))
+ return EC;
+ OS << Name;
+ return object_error::success;
+}
error_code ObjectFile::getSymbolAlignment(DataRefImpl DRI,
uint32_t &Result) const {