diff options
-rw-r--r-- | llvm/lib/Object/ELFYAML.cpp | 1 | ||||
-rw-r--r-- | llvm/lib/Support/Path.cpp | 2 | ||||
-rw-r--r-- | llvm/test/Object/elf-unknown-type.test | 10 |
3 files changed, 12 insertions, 1 deletions
diff --git a/llvm/lib/Object/ELFYAML.cpp b/llvm/lib/Object/ELFYAML.cpp index 7e35fb5dc61..14aa8317101 100644 --- a/llvm/lib/Object/ELFYAML.cpp +++ b/llvm/lib/Object/ELFYAML.cpp @@ -30,6 +30,7 @@ ScalarEnumerationTraits<ELFYAML::ELF_ET>::enumeration(IO &IO, ECase(ET_DYN) ECase(ET_CORE) #undef ECase + IO.enumFallback<Hex16>(Value); } void diff --git a/llvm/lib/Support/Path.cpp b/llvm/lib/Support/Path.cpp index fdb27e6aa66..abec7b9dd22 100644 --- a/llvm/lib/Support/Path.cpp +++ b/llvm/lib/Support/Path.cpp @@ -960,7 +960,7 @@ file_magic identify_magic(StringRef Magic) { unsigned low = Data2MSB ? 17 : 16; if (Magic[high] == 0) switch (Magic[low]) { - default: break; + default: return file_magic::elf; case 1: return file_magic::elf_relocatable; case 2: return file_magic::elf_executable; case 3: return file_magic::elf_shared_object; diff --git a/llvm/test/Object/elf-unknown-type.test b/llvm/test/Object/elf-unknown-type.test new file mode 100644 index 00000000000..9993c096376 --- /dev/null +++ b/llvm/test/Object/elf-unknown-type.test @@ -0,0 +1,10 @@ +# RUN: yaml2obj -format=elf %s | llvm-readobj -file-headers - | FileCheck %s + +!ELF +FileHeader: !FileHeader + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: 42 + Machine: EM_X86_64 + +# CHECK: Type: 0x2A |