diff options
author | Nick Kledzik <kledzik@apple.com> | 2012-05-31 22:34:00 +0000 |
---|---|---|
committer | Nick Kledzik <kledzik@apple.com> | 2012-05-31 22:34:00 +0000 |
commit | abb6981f68a0cf631b6d7d36e67127bb1af50713 (patch) | |
tree | 63d6fd7aeef209f7528fecf1a151df50f61f7fa9 /lld/lib/ReaderWriter/Reader.cpp | |
parent | 5168a72b2628288c5ba3143745554e2eadbb67b0 (diff) | |
download | bcm5719-llvm-abb6981f68a0cf631b6d7d36e67127bb1af50713.tar.gz bcm5719-llvm-abb6981f68a0cf631b6d7d36e67127bb1af50713.zip |
Major refactoring: Remove Platform concept. In its place there are
now Reader and Writer subclasses for each file format. Each Reader and
Writer subclass defines an "options" class which controls how that Reader
or Writer operates.
llvm-svn: 157774
Diffstat (limited to 'lld/lib/ReaderWriter/Reader.cpp')
-rw-r--r-- | lld/lib/ReaderWriter/Reader.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/lld/lib/ReaderWriter/Reader.cpp b/lld/lib/ReaderWriter/Reader.cpp new file mode 100644 index 00000000000..f4395e8ff38 --- /dev/null +++ b/lld/lib/ReaderWriter/Reader.cpp @@ -0,0 +1,42 @@ +//===- lib/ReaderWriter/Reader.cpp ----------------------------------------===// +// +// The LLVM Linker +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include "lld/ReaderWriter/Reader.h" + +#include "llvm/ADT/OwningPtr.h" +#include "llvm/ADT/StringRef.h" +#include "llvm/Support/MemoryBuffer.h" +#include "llvm/Support/system_error.h" + + +namespace lld { + +Reader::Reader() { +} + +Reader::~Reader() { +} + +error_code Reader::readFile(StringRef path, + std::vector<std::unique_ptr<File>> &result) { + OwningPtr<llvm::MemoryBuffer> opmb; + if ( error_code ec = llvm::MemoryBuffer::getFileOrSTDIN(path, opmb) ) + return ec; + + std::unique_ptr<MemoryBuffer> mb(opmb.take()); + return this->parseFile(std::move(mb), result); +} + + + +ReaderOptions::ReaderOptions() { +} + +} // namespace lld + |