diff options
author | Simon Atanasyan <simon@atanasyan.com> | 2014-06-06 07:41:57 +0000 |
---|---|---|
committer | Simon Atanasyan <simon@atanasyan.com> | 2014-06-06 07:41:57 +0000 |
commit | 65e6467e693c2389d137f07f94ecc087e2894d25 (patch) | |
tree | 91736c10ad2313fc46f0ec9d95680b9035ba7983 /llvm/tools | |
parent | 558b3363a795b59e2b596d7d83e05953de270e60 (diff) | |
download | bcm5719-llvm-65e6467e693c2389d137f07f94ecc087e2894d25.tar.gz bcm5719-llvm-65e6467e693c2389d137f07f94ecc087e2894d25.zip |
[yaml2obj][obj2yaml] Support ELF symbol's visibility flags (default/hidden/protected).
llvm-svn: 210316
Diffstat (limited to 'llvm/tools')
-rw-r--r-- | llvm/tools/obj2yaml/elf2yaml.cpp | 1 | ||||
-rw-r--r-- | llvm/tools/yaml2obj/yaml2elf.cpp | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/llvm/tools/obj2yaml/elf2yaml.cpp b/llvm/tools/obj2yaml/elf2yaml.cpp index 5d19f9c7e6a..317c6eb3e67 100644 --- a/llvm/tools/obj2yaml/elf2yaml.cpp +++ b/llvm/tools/obj2yaml/elf2yaml.cpp @@ -132,6 +132,7 @@ error_code ELFDumper<ELFT>::dumpSymbol(Elf_Sym_Iter Sym, ELFYAML::Symbol &S) { S.Type = Sym->getType(); S.Value = Sym->st_value; S.Size = Sym->st_size; + S.Visibility = Sym->st_other & 0x3; ErrorOr<StringRef> NameOrErr = Obj.getSymbolName(Sym); if (error_code EC = NameOrErr.getError()) diff --git a/llvm/tools/yaml2obj/yaml2elf.cpp b/llvm/tools/yaml2obj/yaml2elf.cpp index 11a56469b0d..467969d21d7 100644 --- a/llvm/tools/yaml2obj/yaml2elf.cpp +++ b/llvm/tools/yaml2obj/yaml2elf.cpp @@ -304,6 +304,7 @@ void ELFState<ELFT>::addSymbols(const std::vector<ELFYAML::Symbol> &Symbols, Symbol.st_shndx = Index; } // else Symbol.st_shndex == SHN_UNDEF (== 0), since it was zero'd earlier. Symbol.st_value = Sym.Value; + Symbol.st_other = Sym.Visibility; Symbol.st_size = Sym.Size; Syms.push_back(Symbol); } |