mirror of
https://github.com/RPCSX/llvm.git
synced 2025-02-02 10:32:56 +00:00
Add accessor to get 'visibility' part of st_other field
This new `getVisibility()` function will also be used in the LLD code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@221392 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
65c7979555
commit
5563be0f4f
@ -176,6 +176,7 @@ struct Elf_Sym_Base<ELFType<TargetEndianness, MaxAlign, true> > {
|
||||
template <class ELFT>
|
||||
struct Elf_Sym_Impl : Elf_Sym_Base<ELFT> {
|
||||
using Elf_Sym_Base<ELFT>::st_info;
|
||||
using Elf_Sym_Base<ELFT>::st_other;
|
||||
|
||||
// These accessors and mutators correspond to the ELF32_ST_BIND,
|
||||
// ELF32_ST_TYPE, and ELF32_ST_INFO macros defined in the ELF specification:
|
||||
@ -186,6 +187,9 @@ struct Elf_Sym_Impl : Elf_Sym_Base<ELFT> {
|
||||
void setBindingAndType(unsigned char b, unsigned char t) {
|
||||
st_info = (b << 4) + (t & 0x0f);
|
||||
}
|
||||
|
||||
/// Access to the STV_xxx flag stored in the first two bits of st_other.
|
||||
unsigned char getVisibility() const { return st_other & 0x3; }
|
||||
};
|
||||
|
||||
/// Elf_Versym: This is the structure of entries in the SHT_GNU_versym section
|
||||
|
@ -133,7 +133,7 @@ std::error_code ELFDumper<ELFT>::dumpSymbol(Elf_Sym_Iter Sym,
|
||||
S.Type = Sym->getType();
|
||||
S.Value = Sym->st_value;
|
||||
S.Size = Sym->st_size;
|
||||
S.Visibility = Sym->st_other & 0x3;
|
||||
S.Visibility = Sym->getVisibility();
|
||||
|
||||
ErrorOr<StringRef> NameOrErr = Obj.getSymbolName(Sym);
|
||||
if (std::error_code EC = NameOrErr.getError())
|
||||
|
Loading…
x
Reference in New Issue
Block a user