diff options
| author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-10-09 16:15:57 +0000 |
|---|---|---|
| committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-10-09 16:15:57 +0000 |
| commit | 26fd69de903921b2fb5ec299d800ee4896f81781 (patch) | |
| tree | 66ffe1e39108f79f456a3af2c79fc9726a621118 | |
| parent | af311c1d01b18b2faa05891c2ffd2ee93983aa04 (diff) | |
| download | bcm5719-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.cpp | 8 |
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; |

