Simplify getSymbolFlags.

None of the object formats require extra parsing to compute these flags,
so the method cannot fail.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200574 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rafael Espindola
2014-01-31 20:57:12 +00:00
parent c2c98e7884
commit d8324e6983
10 changed files with 22 additions and 35 deletions

View File

@@ -65,7 +65,7 @@ protected:
error_code getSymbolAlignment(DataRefImpl Symb, uint32_t &Res) const
LLVM_OVERRIDE;
error_code getSymbolSize(DataRefImpl Symb, uint64_t &Res) const LLVM_OVERRIDE;
error_code getSymbolFlags(DataRefImpl Symb, uint32_t &Res) const;
uint32_t getSymbolFlags(DataRefImpl Symb) const LLVM_OVERRIDE;
error_code getSymbolType(DataRefImpl Symb, SymbolRef::Type &Res) const
LLVM_OVERRIDE;
error_code getSymbolSection(DataRefImpl Symb, section_iterator &Res) const
@@ -378,11 +378,10 @@ error_code ELFObjectFile<ELFT>::getSymbolType(DataRefImpl Symb,
}
template <class ELFT>
error_code ELFObjectFile<ELFT>::getSymbolFlags(DataRefImpl Symb,
uint32_t &Result) const {
uint32_t ELFObjectFile<ELFT>::getSymbolFlags(DataRefImpl Symb) const {
const Elf_Sym *ESym = getSymbol(Symb);
Result = SymbolRef::SF_None;
uint32_t Result = SymbolRef::SF_None;
if (ESym->getBinding() != ELF::STB_LOCAL)
Result |= SymbolRef::SF_Global;
@@ -407,7 +406,7 @@ error_code ELFObjectFile<ELFT>::getSymbolFlags(DataRefImpl Symb,
if (ESym->getType() == ELF::STT_TLS)
Result |= SymbolRef::SF_ThreadLocal;
return object_error::success;
return Result;
}
template <class ELFT>