This removes the eating of the error in Archive::Child::getSize() when the characters
[oota-llvm.git] / tools / llvm-readobj / llvm-readobj.cpp
index cb0c9c6418e610737016b57075763f28cb5fc0d4..b59579de49dba8ca1a836d7770f9c64fe9f689a3 100644 (file)
@@ -377,7 +377,12 @@ static void dumpObject(const ObjectFile *Obj) {
 
 /// @brief Dumps each object file in \a Arc;
 static void dumpArchive(const Archive *Arc) {
-  for (const auto &Child : Arc->children()) {
+  for (auto &ErrorOrChild : Arc->children()) {
+    if (std::error_code EC = ErrorOrChild.getError()) {
+      reportError(Arc->getFileName(), EC.message());
+      break;
+    }
+    const auto &Child = *ErrorOrChild;
     ErrorOr<std::unique_ptr<Binary>> ChildOrErr = Child.getAsBinary();
     if (std::error_code EC = ChildOrErr.getError()) {
       // Ignore non-object files.