blob: 17ee4f3023d8f880dd3c3eb29c6179832e4db1c3 [file] [log] [blame]
Nick Kledzikabb69812012-05-31 22:34:00 +00001//===- lib/ReaderWriter/Reader.cpp ----------------------------------------===//
2//
3// The LLVM Linker
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#include "lld/ReaderWriter/Reader.h"
11
12#include "llvm/ADT/OwningPtr.h"
13#include "llvm/ADT/StringRef.h"
14#include "llvm/Support/MemoryBuffer.h"
15#include "llvm/Support/system_error.h"
16
Nick Kledzikabb69812012-05-31 22:34:00 +000017namespace lld {
Nick Kledzikabb69812012-05-31 22:34:00 +000018Reader::~Reader() {
19}
20
21error_code Reader::readFile(StringRef path,
Michael J. Spencer64afcb42013-01-23 01:18:43 +000022 std::vector<std::unique_ptr<File>> &result) {
Nick Kledzikabb69812012-05-31 22:34:00 +000023 OwningPtr<llvm::MemoryBuffer> opmb;
Michael J. Spencer64afcb42013-01-23 01:18:43 +000024 if (error_code ec = llvm::MemoryBuffer::getFileOrSTDIN(path, opmb))
Nick Kledzikabb69812012-05-31 22:34:00 +000025 return ec;
Shankar Easwaran8962feb2013-03-14 16:09:49 +000026
Nick Kledzikabb69812012-05-31 22:34:00 +000027 std::unique_ptr<MemoryBuffer> mb(opmb.take());
28 return this->parseFile(std::move(mb), result);
29}
Shankar Easwaran8962feb2013-03-14 16:09:49 +000030} // end namespace lld