Return ErrorOr from SymbolRef::getName.
[oota-llvm.git] / tools / llvm-rtdyld / llvm-rtdyld.cpp
index addea5884726ed499c1bad80388716d4bf983162..98c6f5c4399cdb6ad3192e094e6a3a4888c72277 100644 (file)
@@ -259,22 +259,17 @@ static int printLineInfoForInput(bool LoadObjects, bool UseDebugObj) {
     std::unique_ptr<DIContext> Context(
       new DWARFContextInMemory(*SymbolObj,LoadedObjInfo.get()));
 
-    ErrorOr<std::vector<std::pair<SymbolRef, uint64_t>>> SymAddrOrErr =
+    std::vector<std::pair<SymbolRef, uint64_t>> SymAddr =
         object::computeSymbolSizes(*SymbolObj);
-    if (std::error_code EC = SymAddrOrErr.getError())
-      return Error(EC.message());
 
     // Use symbol info to iterate functions in the object.
-    for (const auto &P : *SymAddrOrErr) {
+    for (const auto &P : SymAddr) {
       object::SymbolRef Sym = P.first;
-      object::SymbolRef::Type SymType;
-      if (Sym.getType(SymType))
-        continue;
-      if (SymType == object::SymbolRef::ST_Function) {
-        StringRef  Name;
-        uint64_t   Addr;
-        if (Sym.getName(Name))
+      if (Sym.getType() == object::SymbolRef::ST_Function) {
+        ErrorOr<StringRef> Name = Sym.getName();
+        if (!Name)
           continue;
+        uint64_t Addr;
         if (Sym.getAddress(Addr))
           continue;
 
@@ -293,7 +288,8 @@ static int printLineInfoForInput(bool LoadObjects, bool UseDebugObj) {
             Addr += SectionLoadAddress - Sec->getAddress();
         }
 
-        outs() << "Function: " << Name << ", Size = " << Size << ", Addr = " << Addr << "\n";
+        outs() << "Function: " << *Name << ", Size = " << Size
+               << ", Addr = " << Addr << "\n";
 
         DILineInfoTable Lines = Context->getLineInfoForAddressRange(Addr, Size);
         DILineInfoTable::iterator  Begin = Lines.begin();