This function is called only from WinLinkDriver.cpp. Move the function to that file and mark as static. llvm-svn: 224211
40 lines
1.2 KiB
C++
40 lines
1.2 KiB
C++
//===- 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<StringRef> filePath = getPath(ctx);
|
|
if (std::error_code ec = filePath.getError()) {
|
|
diagnostics << "File not found: " << _path << "\n";
|
|
return ec;
|
|
}
|
|
|
|
ErrorOr<std::unique_ptr<MemoryBuffer>> 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
|