]> granicus.if.org Git - llvm/commitdiff
Move function out of line. NFC.
authorRafael Espindola <rafael.espindola@gmail.com>
Thu, 3 Nov 2016 16:24:35 +0000 (16:24 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Thu, 3 Nov 2016 16:24:35 +0000 (16:24 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285929 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Object/ELF.h

index ef01735f13d275bbba3e8645ffbbbf13676c3c9b..998e693770d6e7029e9ed3a730bf5daf61c086d2 100644 (file)
@@ -156,15 +156,7 @@ public:
   ErrorOr<const Elf_Shdr *> getSection(uint32_t Index) const;
 
   ErrorOr<const Elf_Sym *> getSymbol(const Elf_Shdr *Sec,
-                                     uint32_t Index) const {
-    auto SymtabOrErr = symbols(Sec);
-    if (std::error_code EC = SymtabOrErr.getError())
-      return EC;
-    Elf_Sym_Range Symbols = *SymtabOrErr;
-    if (Index >= Symbols.size())
-      return object_error::invalid_symbol_index;
-    return &Symbols[Index];
-  }
+                                     uint32_t Index) const;
 
   ErrorOr<StringRef> getSectionName(const Elf_Shdr *Section) const;
   ErrorOr<StringRef> getSectionName(const Elf_Shdr *Section,
@@ -237,6 +229,18 @@ ELFFile<ELFT>::getSection(const Elf_Sym *Sym, const Elf_Shdr *SymTab,
   return object::getSection<ELFT>(*SectionsOrErr, Index);
 }
 
+template <class ELFT>
+ErrorOr<const typename ELFT::Sym *>
+ELFFile<ELFT>::getSymbol(const Elf_Shdr *Sec, uint32_t Index) const {
+  auto SymtabOrErr = symbols(Sec);
+  if (std::error_code EC = SymtabOrErr.getError())
+    return EC;
+  Elf_Sym_Range Symbols = *SymtabOrErr;
+  if (Index >= Symbols.size())
+    return object_error::invalid_symbol_index;
+  return &Symbols[Index];
+}
+
 template <class ELFT>
 template <typename T>
 ErrorOr<ArrayRef<T>>