From 3a2d5b51008050f5b0c4d62152e8e25371be0319 Mon Sep 17 00:00:00 2001 From: Shoaib Meenai Date: Tue, 3 Oct 2017 06:35:55 +0000 Subject: [PATCH] [ObjectYAML] Handle SHF_COMPRESSED This was previously being silently dropped by obj2yaml and caused parsing errors with yaml2obj. Differential Revision: https://reviews.llvm.org/D38490 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314768 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/ObjectYAML/ELFYAML.cpp | 1 + test/ObjectYAML/ELF/shf-compressed.yaml | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 test/ObjectYAML/ELF/shf-compressed.yaml diff --git a/lib/ObjectYAML/ELFYAML.cpp b/lib/ObjectYAML/ELFYAML.cpp index d6123499a22..6d323246644 100644 --- a/lib/ObjectYAML/ELFYAML.cpp +++ b/lib/ObjectYAML/ELFYAML.cpp @@ -450,6 +450,7 @@ void ScalarBitSetTraits::bitset(IO &IO, BCase(SHF_OS_NONCONFORMING); BCase(SHF_GROUP); BCase(SHF_TLS); + BCase(SHF_COMPRESSED); switch (Object->Header.Machine) { case ELF::EM_ARM: BCase(SHF_ARM_PURECODE); diff --git a/test/ObjectYAML/ELF/shf-compressed.yaml b/test/ObjectYAML/ELF/shf-compressed.yaml new file mode 100644 index 00000000000..becad6407a9 --- /dev/null +++ b/test/ObjectYAML/ELF/shf-compressed.yaml @@ -0,0 +1,28 @@ +# RUN: yaml2obj %s -o %t +# RUN: llvm-readobj -sections %t | FileCheck -check-prefix=OBJ %s +# RUN: obj2yaml %t | FileCheck -check-prefix=YAML %s + +--- !ELF +FileHeader: + Class: ELFCLASS32 + Data: ELFDATA2LSB + Type: ET_REL + Machine: EM_386 +Sections: + - Name: .debug_line + Type: SHT_PROGBITS + Flags: [ SHF_COMPRESSED ] + +# OBJ: Sections [ +# OBJ: Section { +# OBJ: Index: 1 +# OBJ-NEXT: Name: .debug_line (1) +# OBJ-NEXT: Type: SHT_PROGBITS (0x1) +# OBJ-NEXT: Flags [ (0x800) +# OBJ-NEXT: SHF_COMPRESSED (0x800) +# OBJ-NEXT: ] + +# YAML: Sections: +# YAML-NEXT: - Name: .debug_line +# YAML-NEXT: Type: SHT_PROGBITS +# YAML-NEXT: Flags: [ SHF_COMPRESSED ] -- 2.11.0