diff options
| -rw-r--r-- | llvm/test/tools/llvm-readobj/Inputs/compression.zlib.style.elf-x86-64 | bin | 0 -> 10384 bytes | |||
| -rw-r--r-- | llvm/test/tools/llvm-readobj/elf-sec-compressed.test | 9 | ||||
| -rw-r--r-- | llvm/tools/llvm-readobj/ELFDumper.cpp | 12 |
3 files changed, 19 insertions, 2 deletions
diff --git a/llvm/test/tools/llvm-readobj/Inputs/compression.zlib.style.elf-x86-64 b/llvm/test/tools/llvm-readobj/Inputs/compression.zlib.style.elf-x86-64 Binary files differnew file mode 100644 index 00000000000..34cdb8a89ed --- /dev/null +++ b/llvm/test/tools/llvm-readobj/Inputs/compression.zlib.style.elf-x86-64 diff --git a/llvm/test/tools/llvm-readobj/elf-sec-compressed.test b/llvm/test/tools/llvm-readobj/elf-sec-compressed.test new file mode 100644 index 00000000000..baf0c687a91 --- /dev/null +++ b/llvm/test/tools/llvm-readobj/elf-sec-compressed.test @@ -0,0 +1,9 @@ +RUN: llvm-readobj -sections \ +RUN: %p/Inputs/compression.zlib.style.elf-x86-64 | FileCheck %s + +CHECK: Section { +CHECK: Name: .debug_info +CHECK-NEXT: Type: SHT_PROGBITS +CHECK-NEXT: Flags [ +CHECK-NEXT: SHF_COMPRESSED (0x800) +CHECK-NEXT: ] diff --git a/llvm/tools/llvm-readobj/ELFDumper.cpp b/llvm/tools/llvm-readobj/ELFDumper.cpp index a1d92e0b6fe..dfdd029a7f9 100644 --- a/llvm/tools/llvm-readobj/ELFDumper.cpp +++ b/llvm/tools/llvm-readobj/ELFDumper.cpp @@ -994,8 +994,12 @@ static const EnumEntry<unsigned> ElfSectionFlags[] = { ENUM_ENT(SHF_TLS, "T"), ENUM_ENT(SHF_MASKOS, "o"), ENUM_ENT(SHF_MASKPROC, "p"), - ENUM_ENT_1(XCORE_SHF_CP_SECTION), - ENUM_ENT_1(XCORE_SHF_DP_SECTION), + ENUM_ENT_1(SHF_COMPRESSED), +}; + +static const EnumEntry<unsigned> ElfXCoreSectionFlags[] = { + LLVM_READOBJ_ENUM_ENT(ELF, XCORE_SHF_CP_SECTION), + LLVM_READOBJ_ENUM_ENT(ELF, XCORE_SHF_DP_SECTION) }; static const EnumEntry<unsigned> ElfAMDGPUSectionFlags[] = { @@ -3281,6 +3285,10 @@ template <class ELFT> void LLVMStyle<ELFT>::printSections(const ELFO *Obj) { SectionFlags.insert(SectionFlags.end(), std::begin(ElfX86_64SectionFlags), std::end(ElfX86_64SectionFlags)); break; + case EM_XCORE: + SectionFlags.insert(SectionFlags.end(), std::begin(ElfXCoreSectionFlags), + std::end(ElfXCoreSectionFlags)); + break; default: // Nothing to do. break; |

