[llvm] f027e1a - [yaml2obj] - Allow using an arbitrary value for OSABI.

Georgii Rymar via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 23 02:30:40 PST 2019


Author: Georgii Rymar
Date: 2019-12-23T13:29:52+03:00
New Revision: f027e1a68dacfb692b4f3e30abfda529d020d472

URL: https://github.com/llvm/llvm-project/commit/f027e1a68dacfb692b4f3e30abfda529d020d472
DIFF: https://github.com/llvm/llvm-project/commit/f027e1a68dacfb692b4f3e30abfda529d020d472.diff

LOG: [yaml2obj] - Allow using an arbitrary value for OSABI.

There was no way to set an unsupported or unknown OS ABI.
With this patch it is possible to use any numeric value.

Differential revision: https://reviews.llvm.org/D71765

Added: 
    

Modified: 
    llvm/lib/ObjectYAML/ELFYAML.cpp
    llvm/test/tools/yaml2obj/ELF/header-osabi.yaml

Removed: 
    


################################################################################
diff  --git a/llvm/lib/ObjectYAML/ELFYAML.cpp b/llvm/lib/ObjectYAML/ELFYAML.cpp
index 206ae533ffca..21ae85022c25 100644
--- a/llvm/lib/ObjectYAML/ELFYAML.cpp
+++ b/llvm/lib/ObjectYAML/ELFYAML.cpp
@@ -275,6 +275,7 @@ void ScalarEnumerationTraits<ELFYAML::ELF_ELFOSABI>::enumeration(
   ECase(ELFOSABI_C6000_LINUX);
   ECase(ELFOSABI_STANDALONE);
 #undef ECase
+  IO.enumFallback<Hex8>(Value);
 }
 
 void ScalarBitSetTraits<ELFYAML::ELF_EF>::bitset(IO &IO,

diff  --git a/llvm/test/tools/yaml2obj/ELF/header-osabi.yaml b/llvm/test/tools/yaml2obj/ELF/header-osabi.yaml
index 6a4b9ab30e50..bd552d3a3065 100644
--- a/llvm/test/tools/yaml2obj/ELF/header-osabi.yaml
+++ b/llvm/test/tools/yaml2obj/ELF/header-osabi.yaml
@@ -325,3 +325,16 @@ FileHeader:
   Type:    ET_REL
   Machine: EM_X86_64
   OSABI:   ELFOSABI_STANDALONE
+
+## Test we can use an arbitrary number for OSABI.
+# RUN: yaml2obj %s --docnum=27 -o %t.number
+# RUN: llvm-readobj --file-headers %t.number | FileCheck %s --check-prefix=OSABI-NUMBER
+# OSABI-NUMBER: OS/ABI: 0xFE
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS64
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_X86_64
+  OSABI:   0xFE


        


More information about the llvm-commits mailing list