diff options
author | Alexey Samsonov <samsonov@google.com> | 2014-02-26 12:51:19 +0000 |
---|---|---|
committer | Alexey Samsonov <samsonov@google.com> | 2014-02-26 12:51:19 +0000 |
commit | 2895793c6a17c567a64108f9f23500ee4b014e9d (patch) | |
tree | 81541e82448328c2b88eb99cca7261471e2cf183 /include/llvm/Object | |
parent | 18f2091b7bd2a3bba5389b406a412c631c913335 (diff) | |
download | llvm-2895793c6a17c567a64108f9f23500ee4b014e9d.tar.gz llvm-2895793c6a17c567a64108f9f23500ee4b014e9d.tar.bz2 llvm-2895793c6a17c567a64108f9f23500ee4b014e9d.tar.xz |
Move getELFDynamicSymbolIterators to a public header.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202264 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Object')
-rw-r--r-- | include/llvm/Object/ELFObjectFile.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/include/llvm/Object/ELFObjectFile.h b/include/llvm/Object/ELFObjectFile.h index ae6b6068d5..917786fd22 100644 --- a/include/llvm/Object/ELFObjectFile.h +++ b/include/llvm/Object/ELFObjectFile.h @@ -1015,6 +1015,25 @@ static inline error_code getELFRelocationAddend(const RelocationRef R, llvm_unreachable("Object passed to getELFRelocationAddend() is not ELF"); } +static inline std::pair<symbol_iterator, symbol_iterator> +getELFDynamicSymbolIterators(SymbolicFile *Obj) { + if (const ELF32LEObjectFile *ELF = dyn_cast<ELF32LEObjectFile>(Obj)) + return std::make_pair(ELF->dynamic_symbol_begin(), + ELF->dynamic_symbol_end()); + if (const ELF64LEObjectFile *ELF = dyn_cast<ELF64LEObjectFile>(Obj)) + return std::make_pair(ELF->dynamic_symbol_begin(), + ELF->dynamic_symbol_end()); + if (const ELF32BEObjectFile *ELF = dyn_cast<ELF32BEObjectFile>(Obj)) + return std::make_pair(ELF->dynamic_symbol_begin(), + ELF->dynamic_symbol_end()); + if (const ELF64BEObjectFile *ELF = cast<ELF64BEObjectFile>(Obj)) + return std::make_pair(ELF->dynamic_symbol_begin(), + ELF->dynamic_symbol_end()); + + llvm_unreachable( + "Object passed to getELFDynamicSymbolIterators() is not ELF"); +} + /// This is a generic interface for retrieving GNU symbol version /// information from an ELFObjectFile. static inline error_code GetELFSymbolVersion(const ObjectFile *Obj, |