summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2015-10-09 16:15:57 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2015-10-09 16:15:57 +0000
commit26fd69de903921b2fb5ec299d800ee4896f81781 (patch)
tree66ffe1e39108f79f456a3af2c79fc9726a621118
parentaf311c1d01b18b2faa05891c2ffd2ee93983aa04 (diff)
downloadbcm5719-llvm-26fd69de903921b2fb5ec299d800ee4896f81781.tar.gz
bcm5719-llvm-26fd69de903921b2fb5ec299d800ee4896f81781.zip
Don't silently ignore an error.
Found by inspection. llvm-svn: 249843
-rw-r--r--lld/ELF/OutputSections.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/lld/ELF/OutputSections.cpp b/lld/ELF/OutputSections.cpp
index af2e637b6b4..852ba6b89fe 100644
--- a/lld/ELF/OutputSections.cpp
+++ b/lld/ELF/OutputSections.cpp
@@ -594,12 +594,14 @@ void SymbolTableSection<ELFT>::writeLocalSymbols(uint8_t *&Buf) {
auto &File = cast<ObjectFile<ELFT>>(*FileB);
Elf_Sym_Range Syms = File.getLocalSymbols();
for (const Elf_Sym &Sym : Syms) {
- ErrorOr<StringRef> SymName = Sym.getName(File.getStringTable());
- if (SymName && !shouldKeepInSymtab<ELFT>(*SymName, Sym))
+ ErrorOr<StringRef> SymNameOrErr = Sym.getName(File.getStringTable());
+ error(SymNameOrErr);
+ StringRef SymName = *SymNameOrErr;
+ if (!shouldKeepInSymtab<ELFT>(SymName, Sym))
continue;
auto *ESym = reinterpret_cast<Elf_Sym *>(Buf);
Buf += sizeof(*ESym);
- ESym->st_name = (SymName) ? StrTabSec.getFileOff(*SymName) : 0;
+ ESym->st_name = StrTabSec.getFileOff(SymName);
ESym->st_size = Sym.st_size;
ESym->setBindingAndType(Sym.getBinding(), Sym.getType());
uint32_t SecIndex = Sym.st_shndx;
OpenPOWER on IntegriCloud