summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/test/tools/llvm-readobj/Inputs/compression.zlib.style.elf-x86-64bin0 -> 10384 bytes
-rw-r--r--llvm/test/tools/llvm-readobj/elf-sec-compressed.test9
-rw-r--r--llvm/tools/llvm-readobj/ELFDumper.cpp12
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
new file mode 100644
index 00000000000..34cdb8a89ed
--- /dev/null
+++ b/llvm/test/tools/llvm-readobj/Inputs/compression.zlib.style.elf-x86-64
Binary files differ
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;
OpenPOWER on IntegriCloud