diff --git a/lib/Object/ELFYAML.cpp b/lib/Object/ELFYAML.cpp index 7e35fb5dc61..14aa8317101 100644 --- a/lib/Object/ELFYAML.cpp +++ b/lib/Object/ELFYAML.cpp @@ -30,6 +30,7 @@ ScalarEnumerationTraits::enumeration(IO &IO, ECase(ET_DYN) ECase(ET_CORE) #undef ECase + IO.enumFallback(Value); } void diff --git a/lib/Support/Path.cpp b/lib/Support/Path.cpp index fdb27e6aa66..abec7b9dd22 100644 --- a/lib/Support/Path.cpp +++ b/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/test/Object/elf-unknown-type.test b/test/Object/elf-unknown-type.test new file mode 100644 index 00000000000..9993c096376 --- /dev/null +++ b/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