diff --git a/llvm/lib/DWP/DWP.cpp b/llvm/lib/DWP/DWP.cpp --- a/llvm/lib/DWP/DWP.cpp +++ b/llvm/lib/DWP/DWP.cpp @@ -586,8 +586,12 @@ for (const auto &Input : Inputs) { auto ErrOrObj = object::ObjectFile::createObjectFile(Input); - if (!ErrOrObj) - return ErrOrObj.takeError(); + if (!ErrOrObj) { + return handleErrors(ErrOrObj.takeError(), + [&](std::unique_ptr EC) -> Error { + return createFileError(Input, Error(std::move(EC))); + }); + } auto &Obj = *ErrOrObj->getBinary(); Objects.push_back(std::move(*ErrOrObj)); diff --git a/llvm/tools/llvm-dwp/llvm-dwp.cpp b/llvm/tools/llvm-dwp/llvm-dwp.cpp --- a/llvm/tools/llvm-dwp/llvm-dwp.cpp +++ b/llvm/tools/llvm-dwp/llvm-dwp.cpp @@ -111,7 +111,13 @@ for (const auto &ExecFilename : ExecFilenames) { auto DWOs = getDWOFilenames(ExecFilename); if (!DWOs) { - logAllUnhandledErrors(DWOs.takeError(), WithColor::error()); + logAllUnhandledErrors( + handleErrors(DWOs.takeError(), + [&](std::unique_ptr EC) -> Error { + return createFileError(ExecFilename, + Error(std::move(EC))); + }), + WithColor::error()); return 1; } DWOFilenames.insert(DWOFilenames.end(), @@ -127,7 +133,13 @@ auto ErrOrTriple = readTargetTriple(DWOFilenames.front()); if (!ErrOrTriple) { - logAllUnhandledErrors(ErrOrTriple.takeError(), WithColor::error()); + logAllUnhandledErrors( + handleErrors(ErrOrTriple.takeError(), + [&](std::unique_ptr EC) -> Error { + return createFileError(DWOFilenames.front(), + Error(std::move(EC))); + }), + WithColor::error()); return 1; }