aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/ObjectFile.cpp
diff options
context:
space:
mode:
authorEli Bendersky <eliben@google.com>2013-01-25 20:53:41 +0000
committerEli Bendersky <eliben@google.com>2013-01-25 20:53:41 +0000
commita5a4ff5a5821fb55afc8f39194f8d6da039a872f (patch)
treec8c4c6f5aff7799c5a930efeb2b1784ad438fba9 /llvm/lib/Object/ObjectFile.cpp
parent385f312686d7b31b74ef14971ed141aed73eceb4 (diff)
downloadllvm-a5a4ff5a5821fb55afc8f39194f8d6da039a872f.zip
llvm-a5a4ff5a5821fb55afc8f39194f8d6da039a872f.tar.gz
llvm-a5a4ff5a5821fb55afc8f39194f8d6da039a872f.tar.bz2
When encountering an unknown file format, ObjectFile::createObjectFile should
politely report it instead of running into llvm_unreachable. Also patch llvm-dwarfdump to actually check whether the file it's attempting to dump is a valid object file. llvm-svn: 173489
Diffstat (limited to 'llvm/lib/Object/ObjectFile.cpp')
-rw-r--r--llvm/lib/Object/ObjectFile.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/Object/ObjectFile.cpp b/llvm/lib/Object/ObjectFile.cpp
index b14df9a..860c87b 100644
--- a/llvm/lib/Object/ObjectFile.cpp
+++ b/llvm/lib/Object/ObjectFile.cpp
@@ -33,6 +33,8 @@ ObjectFile *ObjectFile::createObjectFile(MemoryBuffer *Object) {
sys::LLVMFileType type = sys::IdentifyFileType(Object->getBufferStart(),
static_cast<unsigned>(Object->getBufferSize()));
switch (type) {
+ case sys::Unknown_FileType:
+ return 0;
case sys::ELF_Relocatable_FileType:
case sys::ELF_Executable_FileType:
case sys::ELF_SharedObject_FileType:
@@ -52,7 +54,7 @@ ObjectFile *ObjectFile::createObjectFile(MemoryBuffer *Object) {
case sys::COFF_FileType:
return createCOFFObjectFile(Object);
default:
- llvm_unreachable("Unknown Object File Type");
+ llvm_unreachable("Unexpected Object File Type");
}
}