summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2016-11-01 20:24:22 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2016-11-01 20:24:22 +0000
commit120dca3b63cb94bcce3a95416f692a44c9d669aa (patch)
tree5977a2d768d287546a3cd5a1087e79a5195f4e12
parent3603e6123832631d28f4c07fbf55910742367950 (diff)
downloadbcm5719-llvm-120dca3b63cb94bcce3a95416f692a44c9d669aa.tar.gz
bcm5719-llvm-120dca3b63cb94bcce3a95416f692a44c9d669aa.zip
Use the existing std::error_code out parameter.
This avoids calling exit with a partially constructed object. llvm-svn: 285738
-rw-r--r--llvm/include/llvm/Object/ELF.h7
-rw-r--r--llvm/test/Object/invalid.test2
2 files changed, 5 insertions, 4 deletions
diff --git a/llvm/include/llvm/Object/ELF.h b/llvm/include/llvm/Object/ELF.h
index 2c715bffa2f..10f61ad2f28 100644
--- a/llvm/include/llvm/Object/ELF.h
+++ b/llvm/include/llvm/Object/ELF.h
@@ -324,9 +324,10 @@ ELFFile<ELFT>::ELFFile(StringRef Object, std::error_code &EC)
Header = reinterpret_cast<const Elf_Ehdr *>(base());
if (Header->e_shoff == 0) {
- if (Header->e_shnum != 0)
- report_fatal_error(
- "e_shnum should be zero if a file has no section header table");
+ if (Header->e_shnum != 0) {
+ // e_shnum should be zero if a file has no section header table
+ EC = object_error::parse_failed;
+ }
return;
}
diff --git a/llvm/test/Object/invalid.test b/llvm/test/Object/invalid.test
index dd431aa3a55..057239de991 100644
--- a/llvm/test/Object/invalid.test
+++ b/llvm/test/Object/invalid.test
@@ -57,7 +57,7 @@ RUN: not llvm-readobj -t %p/Inputs/invalid-xindex-size.elf 2>&1 | FileCheck --ch
INVALID-XINDEX-SIZE: Invalid data was encountered while parsing the file.
RUN: not llvm-readobj -t %p/Inputs/invalid-e_shnum.elf 2>&1 | FileCheck --check-prefix=INVALID-SH-NUM %s
-INVALID-SH-NUM: e_shnum should be zero if a file has no section header table
+INVALID-SH-NUM: Invalid data was encountered while parsing the file.
RUN: not llvm-readobj -t %p/Inputs/invalid-ext-symtab-index.elf-x86-64 2>&1 | \
RUN: FileCheck --check-prefix=INVALID-EXT-SYMTAB-INDEX %s
OpenPOWER on IntegriCloud