[llvm] [llvm-link] Improve missing file error message (PR #82514)
Joseph Huber via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 21 10:14:59 PST 2024
================
@@ -393,8 +393,17 @@ static bool linkFiles(const char *argv0, LLVMContext &Context, Linker &L,
// Similar to some flags, internalization doesn't apply to the first file.
bool InternalizeLinkedSymbols = false;
for (const auto &File : Files) {
+ auto ErrOrExpected = MemoryBuffer::getFileOrSTDIN(File);
+
+ // When we encounter a missing file, print all missing files to stderr.
+ if (auto EC = ErrOrExpected.getError())
+ if (EC == std::errc::no_such_file_or_directory)
+ for (auto &F : Files)
+ if (!llvm::sys::fs::exists(F))
+ errs() << "No such file or directory: '" << F << "'\n";
+
std::unique_ptr<MemoryBuffer> Buffer =
- ExitOnErr(errorOrToExpected(MemoryBuffer::getFileOrSTDIN(File)));
+ ExitOnErr(errorOrToExpected(std::move(ErrOrExpected)));
----------------
jhuber6 wrote:
Unsure if it's necessary to error on all missing files at the same time. I would recommend just returning an error on this file if it's found, and using something like `createStringError("No such file or directory: %s", F.str())`.
https://github.com/llvm/llvm-project/pull/82514
More information about the llvm-commits
mailing list