[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