]> granicus.if.org Git - llvm/commitdiff
[Object] Change SymbolicFile::printSymbolName to use Error
authorFangrui Song <maskray@google.com>
Fri, 10 May 2019 09:59:04 +0000 (09:59 +0000)
committerFangrui Song <maskray@google.com>
Fri, 10 May 2019 09:59:04 +0000 (09:59 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360414 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Object/COFFImportFile.h
include/llvm/Object/IRObjectFile.h
include/llvm/Object/ObjectFile.h
include/llvm/Object/SymbolicFile.h
lib/Object/ArchiveWriter.cpp
lib/Object/IRObjectFile.cpp
lib/Object/ObjectFile.cpp
tools/llvm-nm/llvm-nm.cpp
tools/llvm-objdump/COFFDump.cpp
tools/llvm-readobj/COFFImportDumper.cpp

index d051d7f09d0ed3a6d3d2e132deb066d150efe820..e07060cea2bbacc712c014a9d502c1db3cf372c6 100644 (file)
@@ -36,12 +36,11 @@ public:
 
   void moveSymbolNext(DataRefImpl &Symb) const override { ++Symb.p; }
 
-  std::error_code printSymbolName(raw_ostream &OS,
-                                  DataRefImpl Symb) const override {
+  Error printSymbolName(raw_ostream &OS, DataRefImpl Symb) const override {
     if (Symb.p == 0)
       OS << "__imp_";
     OS << StringRef(Data.getBufferStart() + sizeof(coff_import_header));
-    return std::error_code();
+    return Error::success();
   }
 
   uint32_t getSymbolFlags(DataRefImpl Symb) const override {
index 39454b05f0d49ebe96a12af1bdd92ea6ba5a0f17..08b92f1bae50b9c73e2970e90326b460fcf71765 100644 (file)
@@ -37,8 +37,7 @@ class IRObjectFile : public SymbolicFile {
 public:
   ~IRObjectFile() override;
   void moveSymbolNext(DataRefImpl &Symb) const override;
-  std::error_code printSymbolName(raw_ostream &OS,
-                                  DataRefImpl Symb) const override;
+  Error printSymbolName(raw_ostream &OS, DataRefImpl Symb) const override;
   uint32_t getSymbolFlags(DataRefImpl Symb) const override;
   basic_symbol_iterator symbol_begin() const override;
   basic_symbol_iterator symbol_end() const override;
index 3d293c6969e14875eb7e88b6df3eea72354fd888..a3cd907684af711b22040ecbbffa614ad55ab1c0 100644 (file)
@@ -244,7 +244,7 @@ protected:
   friend class SymbolRef;
 
   virtual Expected<StringRef> getSymbolName(DataRefImpl Symb) const = 0;
-  std::error_code printSymbolName(raw_ostream &OS,
+  Error printSymbolName(raw_ostream &OS,
                                   DataRefImpl Symb) const override;
   virtual Expected<uint64_t> getSymbolAddress(DataRefImpl Symb) const = 0;
   virtual uint64_t getSymbolValueImpl(DataRefImpl Symb) const = 0;
index 6d95d7a895f290eda8ab357c394e94e94c1d8ecd..1398fa134c81cb69c3e00a17f67cec73e6f51bc3 100644 (file)
@@ -126,7 +126,7 @@ public:
 
   void moveNext();
 
-  std::error_code printName(raw_ostream &OS) const;
+  Error printName(raw_ostream &OS) const;
 
   /// Get symbol flags (bitwise OR of SymbolRef::Flags)
   uint32_t getFlags() const;
@@ -145,8 +145,7 @@ public:
   // virtual interface.
   virtual void moveSymbolNext(DataRefImpl &Symb) const = 0;
 
-  virtual std::error_code printSymbolName(raw_ostream &OS,
-                                          DataRefImpl Symb) const = 0;
+  virtual Error printSymbolName(raw_ostream &OS, DataRefImpl Symb) const = 0;
 
   virtual uint32_t getSymbolFlags(DataRefImpl Symb) const = 0;
 
@@ -193,7 +192,7 @@ inline void BasicSymbolRef::moveNext() {
   return OwningObject->moveSymbolNext(SymbolPimpl);
 }
 
-inline std::error_code BasicSymbolRef::printName(raw_ostream &OS) const {
+inline Error BasicSymbolRef::printName(raw_ostream &OS) const {
   return OwningObject->printSymbolName(OS, SymbolPimpl);
 }
 
index 1092b9d5c2aea5e73c934a4bf0e2444d054f79d5..849d2835772e20fafee2e3a1d1105cb7b9b505c5 100644 (file)
@@ -376,8 +376,8 @@ getSymbols(MemoryBufferRef Buf, raw_ostream &SymNames, bool &HasObject) {
     if (!isArchiveSymbol(S))
       continue;
     Ret.push_back(SymNames.tell());
-    if (auto EC = S.printName(SymNames))
-      return errorCodeToError(EC);
+    if (Error E = S.printName(SymNames))
+      return std::move(E);
     SymNames << '\0';
   }
   return Ret;
index d157908a85603d9d26ad2154a1407e286eafa569..debe7899bfe26f9de390c3f238f3e222678093f6 100644 (file)
@@ -42,10 +42,9 @@ void IRObjectFile::moveSymbolNext(DataRefImpl &Symb) const {
   Symb.p += sizeof(ModuleSymbolTable::Symbol);
 }
 
-std::error_code IRObjectFile::printSymbolName(raw_ostream &OS,
-                                              DataRefImpl Symb) const {
+Error IRObjectFile::printSymbolName(raw_ostream &OS, DataRefImpl Symb) const {
   SymTab.printSymbolName(OS, getSym(Symb));
-  return std::error_code();
+  return Error::success();
 }
 
 uint32_t IRObjectFile::getSymbolFlags(DataRefImpl Symb) const {
index cc0b282665d8b7c333b9fae196e475f07575db3d..3744721773f8e4305b64be5c62676868857950d0 100644 (file)
@@ -56,13 +56,12 @@ uint64_t ObjectFile::getSymbolValue(DataRefImpl Ref) const {
   return getSymbolValueImpl(Ref);
 }
 
-std::error_code ObjectFile::printSymbolName(raw_ostream &OS,
-                                            DataRefImpl Symb) const {
+Error ObjectFile::printSymbolName(raw_ostream &OS, DataRefImpl Symb) const {
   Expected<StringRef> Name = getSymbolName(Symb);
   if (!Name)
-    return errorToErrorCode(Name.takeError());
+    return Name.takeError();
   OS << *Name;
-  return std::error_code();
+  return Error::success();
 }
 
 uint32_t ObjectFile::getSymbolAlignment(DataRefImpl DRI) const { return 0; }
index d7ac98c5b2ca77226a117da2b47bdbf10d506f7a..6bc043feffc1cbd40f25827af68a107b061b590d 100644 (file)
@@ -1219,11 +1219,12 @@ dumpSymbolNamesFromObject(SymbolicFile &Obj, bool printName,
       }
       S.TypeName = getNMTypeName(Obj, Sym);
       S.TypeChar = getNMSectionTagAndName(Obj, Sym, S.SectionName);
-      std::error_code EC = Sym.printName(OS);
-      if (EC && MachO)
-        OS << "bad string index";
-      else
-        error(EC);
+      if (Error E = Sym.printName(OS)) {
+        if (MachO)
+          OS << "bad string index";
+        else
+          error(std::move(E), Obj.getFileName());
+      }
       OS << '\0';
       S.Sym = Sym;
       SymbolList.push_back(S);
index 5489bcf980129a06132a33e85767126cc2ec0994..a81068c2ca45f6cf8590b59afc6d1bffd0e8b93c 100644 (file)
@@ -634,7 +634,7 @@ void printCOFFSymbolTable(const object::COFFImportFile *i) {
     std::string Name;
     raw_string_ostream NS(Name);
 
-    Sym.printName(NS);
+    cantFail(Sym.printName(NS));
     NS.flush();
 
     outs() << "[" << format("%2d", Index) << "]"
index 1d9e7c8ff0e8ef74e9cb636984e23898d1fa14ab..c9d5e82263db111899b3fece970d58ed836376a3 100644 (file)
@@ -50,7 +50,7 @@ void dumpCOFFImportFile(const COFFImportFile *File, ScopedPrinter &Writer) {
   for (const object::BasicSymbolRef &Sym : File->symbols()) {
     raw_ostream &OS = Writer.startLine();
     OS << "Symbol: ";
-    Sym.printName(OS);
+    cantFail(Sym.printName(OS));
     OS << "\n";
   }
 }