diff options
author | Reid Kleckner <reid@kleckner.net> | 2013-06-14 17:17:23 +0000 |
---|---|---|
committer | Reid Kleckner <reid@kleckner.net> | 2013-06-14 17:17:23 +0000 |
commit | 898229ab4b81ef14429ea79cdd1c4aa3b479ca5a (patch) | |
tree | 6ddef3925e73581ddf64d8139634a006fd75c8fc /clang/lib/Driver/Arg.cpp | |
parent | 3e3e040574b764aacd76828a7df6f9b3ad0eebd2 (diff) | |
download | bcm5719-llvm-898229ab4b81ef14429ea79cdd1c4aa3b479ca5a.tar.gz bcm5719-llvm-898229ab4b81ef14429ea79cdd1c4aa3b479ca5a.zip |
[Driver] Refactor clang driver to use LLVM's Option library
The big changes are:
- Deleting Driver/(Arg|Opt)*
- Rewriting includes to llvm/Option/ and re-sorting
- 'using namespace llvm::opt' in clang::driver
- Fixing the autoconf build by adding option everywhere
As discussed in the review, this change includes using directives in
header files. I'll make follow up changes to remove those in favor of
name specifiers.
Reviewers: espindola
Differential Revision: http://llvm-reviews.chandlerc.com/D975
llvm-svn: 183989
Diffstat (limited to 'clang/lib/Driver/Arg.cpp')
-rw-r--r-- | clang/lib/Driver/Arg.cpp | 123 |
1 files changed, 0 insertions, 123 deletions
diff --git a/clang/lib/Driver/Arg.cpp b/clang/lib/Driver/Arg.cpp deleted file mode 100644 index 93d70a9fefe..00000000000 --- a/clang/lib/Driver/Arg.cpp +++ /dev/null @@ -1,123 +0,0 @@ -//===--- Arg.cpp - Argument Implementations -------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#include "clang/Driver/Arg.h" -#include "clang/Basic/LLVM.h" -#include "clang/Driver/ArgList.h" -#include "clang/Driver/Option.h" -#include "llvm/ADT/SmallString.h" -#include "llvm/ADT/Twine.h" -#include "llvm/Support/raw_ostream.h" - -using namespace clang::driver; -using clang::StringRef; - -Arg::Arg(const Option _Opt, StringRef S, unsigned _Index, const Arg *_BaseArg) - : Opt(_Opt), BaseArg(_BaseArg), Spelling(S), Index(_Index), - Claimed(false), OwnsValues(false) { -} - -Arg::Arg(const Option _Opt, StringRef S, unsigned _Index, - const char *Value0, const Arg *_BaseArg) - : Opt(_Opt), BaseArg(_BaseArg), Spelling(S), Index(_Index), - Claimed(false), OwnsValues(false) { - Values.push_back(Value0); -} - -Arg::Arg(const Option _Opt, StringRef S, unsigned _Index, - const char *Value0, const char *Value1, const Arg *_BaseArg) - : Opt(_Opt), BaseArg(_BaseArg), Spelling(S), Index(_Index), - Claimed(false), OwnsValues(false) { - Values.push_back(Value0); - Values.push_back(Value1); -} - -Arg::~Arg() { - if (OwnsValues) { - for (unsigned i = 0, e = Values.size(); i != e; ++i) - delete[] Values[i]; - } -} - -void Arg::dump() const { - llvm::errs() << "<"; - - llvm::errs() << " Opt:"; - Opt.dump(); - - llvm::errs() << " Index:" << Index; - - llvm::errs() << " Values: ["; - for (unsigned i = 0, e = Values.size(); i != e; ++i) { - if (i) llvm::errs() << ", "; - llvm::errs() << "'" << Values[i] << "'"; - } - - llvm::errs() << "]>\n"; -} - -std::string Arg::getAsString(const ArgList &Args) const { - SmallString<256> Res; - llvm::raw_svector_ostream OS(Res); - - ArgStringList ASL; - render(Args, ASL); - for (ArgStringList::iterator - it = ASL.begin(), ie = ASL.end(); it != ie; ++it) { - if (it != ASL.begin()) - OS << ' '; - OS << *it; - } - - return OS.str(); -} - -void Arg::renderAsInput(const ArgList &Args, ArgStringList &Output) const { - if (!getOption().hasNoOptAsInput()) { - render(Args, Output); - return; - } - - for (unsigned i = 0, e = getNumValues(); i != e; ++i) - Output.push_back(getValue(i)); -} - -void Arg::render(const ArgList &Args, ArgStringList &Output) const { - switch (getOption().getRenderStyle()) { - case Option::RenderValuesStyle: - for (unsigned i = 0, e = getNumValues(); i != e; ++i) - Output.push_back(getValue(i)); - break; - - case Option::RenderCommaJoinedStyle: { - SmallString<256> Res; - llvm::raw_svector_ostream OS(Res); - OS << getSpelling(); - for (unsigned i = 0, e = getNumValues(); i != e; ++i) { - if (i) OS << ','; - OS << getValue(i); - } - Output.push_back(Args.MakeArgString(OS.str())); - break; - } - - case Option::RenderJoinedStyle: - Output.push_back(Args.GetOrMakeJoinedArgString( - getIndex(), getSpelling(), getValue(0))); - for (unsigned i = 1, e = getNumValues(); i != e; ++i) - Output.push_back(getValue(i)); - break; - - case Option::RenderSeparateStyle: - Output.push_back(Args.MakeArgString(getSpelling())); - for (unsigned i = 0, e = getNumValues(); i != e; ++i) - Output.push_back(getValue(i)); - break; - } -} |