diff options
author | Georgii Rymar <grimar@accesssoftek.com> | 2019-11-18 17:43:50 +0300 |
---|---|---|
committer | Georgii Rymar <grimar@accesssoftek.com> | 2019-11-20 11:55:55 +0300 |
commit | 1cc78fdb6f7d81d58cdafa44b0966708dc8575bf (patch) | |
tree | 842113be2319ffb7b06425bf9092ce9ba6442515 /llvm/tools/llvm-readobj/ELFDumper.cpp | |
parent | c54959c00d0b39f357d48c3b4f955d72de4c9fc1 (diff) | |
download | llvm-1cc78fdb6f7d81d58cdafa44b0966708dc8575bf.zip llvm-1cc78fdb6f7d81d58cdafa44b0966708dc8575bf.tar.gz llvm-1cc78fdb6f7d81d58cdafa44b0966708dc8575bf.tar.bz2 |
[llvm-readobj/llvm-readelf] - Improve dumping of versioning sections.
Our elf-versioninfo.test is not perfect. It does not properly test how
flags are dumped and also we have a bug: they are dumped as enums in
LLVM style now, i.e not dumped properly.
GNU style uses a `versionFlagToString` method to build a string from flags
which seems is consistent with GNU readelf.
In this patch I fixed the issues mentioned.
Differential revision: https://reviews.llvm.org/D70399
Diffstat (limited to 'llvm/tools/llvm-readobj/ELFDumper.cpp')
-rw-r--r-- | llvm/tools/llvm-readobj/ELFDumper.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/tools/llvm-readobj/ELFDumper.cpp b/llvm/tools/llvm-readobj/ELFDumper.cpp index f83331d..b8078ff 100644 --- a/llvm/tools/llvm-readobj/ELFDumper.cpp +++ b/llvm/tools/llvm-readobj/ELFDumper.cpp @@ -5730,7 +5730,7 @@ void LLVMStyle<ELFT>::printVersionDefinitionSection(const ELFFile<ELFT> *Obj, const Elf_Verdef *Verdef = reinterpret_cast<const Elf_Verdef *>(VerdefBuf); DictScope Def(W, "Definition"); W.printNumber("Version", Verdef->vd_version); - W.printEnum("Flags", Verdef->vd_flags, makeArrayRef(SymVersionFlags)); + W.printFlags("Flags", Verdef->vd_flags, makeArrayRef(SymVersionFlags)); W.printNumber("Index", Verdef->vd_ndx); W.printNumber("Hash", Verdef->vd_hash); W.printString("Name", StringRef(reinterpret_cast<const char *>( @@ -5790,7 +5790,7 @@ void LLVMStyle<ELFT>::printVersionDependencySection(const ELFFile<ELFT> *Obj, reinterpret_cast<const Elf_Vernaux *>(VernauxBuf); DictScope Entry(W, "Entry"); W.printNumber("Hash", Vernaux->vna_hash); - W.printEnum("Flags", Vernaux->vna_flags, makeArrayRef(SymVersionFlags)); + W.printFlags("Flags", Vernaux->vna_flags, makeArrayRef(SymVersionFlags)); W.printNumber("Index", Vernaux->vna_other); StringRef Name = StringTable.size() > Vernaux->vna_name |