//===- lib/Driver/WinLinkInputGraph.cpp -----------------------------------===// // // The LLVM Linker // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #include "lld/Driver/WinLinkInputGraph.h" namespace lld { /// \brief Parse the input file to lld::File. std::error_code PECOFFFileNode::parse(const LinkingContext &ctx, raw_ostream &diagnostics) { if (_parsed) return std::error_code(); _parsed = true; ErrorOr filePath = getPath(ctx); if (std::error_code ec = filePath.getError()) { diagnostics << "File not found: " << _path << "\n"; return ec; } ErrorOr> mb = MemoryBuffer::getFileOrSTDIN(*filePath); if (std::error_code ec = mb.getError()) { diagnostics << "Cannot open file: " << *filePath << "\n"; return ec; } if (ctx.logInputFiles()) diagnostics << *filePath << "\n"; return ctx.registry().parseFile(std::move(mb.get()), _files); } } // end anonymous namespace