[lld] r319916 - Don't allocate an error message when there is no error.

Rafael Espindola via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 6 10:31:11 PST 2017


Author: rafael
Date: Wed Dec  6 10:31:11 2017
New Revision: 319916

URL: http://llvm.org/viewvc/llvm-project?rev=319916&view=rev
Log:
Don't allocate an error message when there is no error.

According to heaptrack this takes "bytes allocated in total" when
linking clang-fsds from 405.69MB to 342.08MB.

Modified:
    lld/trunk/ELF/InputFiles.cpp

Modified: lld/trunk/ELF/InputFiles.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/InputFiles.cpp?rev=319916&r1=319915&r2=319916&view=diff
==============================================================================
--- lld/trunk/ELF/InputFiles.cpp (original)
+++ lld/trunk/ELF/InputFiles.cpp Wed Dec  6 10:31:11 2017
@@ -209,8 +209,10 @@ typename ELFT::SymRange ELFFileBase<ELFT
 
 template <class ELFT>
 uint32_t ELFFileBase<ELFT>::getSectionIndex(const Elf_Sym &Sym) const {
-  return check(getObj().getSectionIndex(&Sym, ELFSyms, SymtabSHNDX),
-               toString(this));
+  auto RetOrErr = getObj().getSectionIndex(&Sym, ELFSyms, SymtabSHNDX);
+  if (RetOrErr)
+    return *RetOrErr;
+  fatal(toString(this) + ": " + toString(RetOrErr.takeError()));
 }
 
 template <class ELFT>




More information about the llvm-commits mailing list