[lld] r319918 - Don't allocate memory for an error message on success.

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


Author: rafael
Date: Wed Dec  6 10:39:22 2017
New Revision: 319918

URL: http://llvm.org/viewvc/llvm-project?rev=319918&view=rev
Log:
Don't allocate memory for an error message on success.

This takes memory allocations when linking clang-fsds from 342.08MB to
320.04MB.

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=319918&r1=319917&r2=319918&view=diff
==============================================================================
--- lld/trunk/ELF/InputFiles.cpp (original)
+++ lld/trunk/ELF/InputFiles.cpp Wed Dec  6 10:39:22 2017
@@ -642,7 +642,10 @@ template <class ELFT> Symbol *ObjFile<EL
     return make<Defined>(this, Name, Binding, StOther, Type, Value, Size, Sec);
   }
 
-  StringRef Name = check(Sym->getName(this->StringTable), toString(this));
+  auto NameOrErr = Sym->getName(this->StringTable);
+  if (!NameOrErr)
+    fatal(toString(this) + ": " + toString(NameOrErr.takeError()));
+  StringRef Name = *NameOrErr;
 
   switch (Sym->st_shndx) {
   case SHN_UNDEF:




More information about the llvm-commits mailing list