[Object][ELF] Test unknown type.
authorMichael J. Spencer <bigcheesegs@gmail.com>
Fri, 23 Jan 2015 21:58:09 +0000 (21:58 +0000)
committerMichael J. Spencer <bigcheesegs@gmail.com>
Fri, 23 Jan 2015 21:58:09 +0000 (21:58 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@226943 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Object/ELFYAML.cpp
lib/Support/Path.cpp
test/Object/elf-unknown-type.test [new file with mode: 0644]

index 7e35fb5dc6156d4713c7c102792896b816f8540f..14aa83171012cc6290450064e2d5d67e7927890c 100644 (file)
@@ -30,6 +30,7 @@ ScalarEnumerationTraits<ELFYAML::ELF_ET>::enumeration(IO &IO,
   ECase(ET_DYN)
   ECase(ET_CORE)
 #undef ECase
+  IO.enumFallback<Hex16>(Value);
 }
 
 void
index fdb27e6aa6645016fc9debfde605ced17ca12494..abec7b9dd221e135bacf6ffc2abd5f61847bd5e8 100644 (file)
@@ -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 (file)
index 0000000..9993c09
--- /dev/null
@@ -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