diff options
author | Michael J. Spencer <bigcheesegs@gmail.com> | 2015-01-23 21:58:09 +0000 |
---|---|---|
committer | Michael J. Spencer <bigcheesegs@gmail.com> | 2015-01-23 21:58:09 +0000 |
commit | e368a62676670b66680f7dd02b171d95bc3281e1 (patch) | |
tree | f002889acf40141dcfcaf469a4e8d7c4e269d465 | |
parent | 731cae3839fcf6e9809595d5385a5990dbbe9451 (diff) | |
download | bcm5719-llvm-e368a62676670b66680f7dd02b171d95bc3281e1.tar.gz bcm5719-llvm-e368a62676670b66680f7dd02b171d95bc3281e1.zip |
[Object][ELF] Test unknown type.
llvm-svn: 226943
-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 |