From 96e80fcbfd852a6bc6ed1a15c87e709ac1080dbc Mon Sep 17 00:00:00 2001 From: Eric Christopher Date: Fri, 18 Dec 2015 18:55:26 +0000 Subject: [PATCH] Convert Arg, ArgList, and Option to dump() to dbgs() rather than errs(). Also add print() functions. Patch by Justin Lebar! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@256010 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Option/Arg.h | 1 + include/llvm/Option/ArgList.h | 1 + include/llvm/Option/Option.h | 1 + lib/Option/Arg.cpp | 21 ++++++++++++--------- lib/Option/ArgList.cpp | 9 ++++++--- lib/Option/Option.cpp | 31 +++++++++++++++++-------------- 6 files changed, 38 insertions(+), 26 deletions(-) diff --git a/include/llvm/Option/Arg.h b/include/llvm/Option/Arg.h index e1b72b6267c..99d329693de 100644 --- a/include/llvm/Option/Arg.h +++ b/include/llvm/Option/Arg.h @@ -113,6 +113,7 @@ public: /// when rendered as a input (e.g., Xlinker). void renderAsInput(const ArgList &Args, ArgStringList &Output) const; + void print(raw_ostream &O) const; void dump() const; /// \brief Return a formatted version of the argument and diff --git a/include/llvm/Option/ArgList.h b/include/llvm/Option/ArgList.h index c6ec08cb6d6..89771b5c3cf 100644 --- a/include/llvm/Option/ArgList.h +++ b/include/llvm/Option/ArgList.h @@ -306,6 +306,7 @@ public: const char *GetOrMakeJoinedArgString(unsigned Index, StringRef LHS, StringRef RHS) const; + void print(raw_ostream &O) const; void dump() const; /// @} diff --git a/include/llvm/Option/Option.h b/include/llvm/Option/Option.h index 09be26c7cf2..494987a135e 100644 --- a/include/llvm/Option/Option.h +++ b/include/llvm/Option/Option.h @@ -195,6 +195,7 @@ public: /// start. Arg *accept(const ArgList &Args, unsigned &Index, unsigned ArgSize) const; + void print(raw_ostream &O) const; void dump() const; }; diff --git a/lib/Option/Arg.cpp b/lib/Option/Arg.cpp index ac000736c1f..c3de2d1a496 100644 --- a/lib/Option/Arg.cpp +++ b/lib/Option/Arg.cpp @@ -13,6 +13,7 @@ #include "llvm/Option/ArgList.h" #include "llvm/Option/Option.h" #include "llvm/Support/raw_ostream.h" +#include "llvm/Support/Debug.h" using namespace llvm; using namespace llvm::opt; @@ -43,23 +44,25 @@ Arg::~Arg() { } } -void Arg::dump() const { - llvm::errs() << "<"; +void Arg::print(raw_ostream& O) const { + O << "<"; - llvm::errs() << " Opt:"; - Opt.dump(); + O << " Opt:"; + Opt.print(O); - llvm::errs() << " Index:" << Index; + O << " Index:" << Index; - llvm::errs() << " Values: ["; + O << " Values: ["; for (unsigned i = 0, e = Values.size(); i != e; ++i) { - if (i) llvm::errs() << ", "; - llvm::errs() << "'" << Values[i] << "'"; + if (i) O << ", "; + O << "'" << Values[i] << "'"; } - llvm::errs() << "]>\n"; + O << "]>\n"; } +LLVM_DUMP_METHOD void Arg::dump() const { print(dbgs()); } + std::string Arg::getAsString(const ArgList &Args) const { SmallString<256> Res; llvm::raw_svector_ostream OS(Res); diff --git a/lib/Option/ArgList.cpp b/lib/Option/ArgList.cpp index 48f1a71d986..0826ef87319 100644 --- a/lib/Option/ArgList.cpp +++ b/lib/Option/ArgList.cpp @@ -13,6 +13,7 @@ #include "llvm/ADT/Twine.h" #include "llvm/Option/Arg.h" #include "llvm/Option/Option.h" +#include "llvm/Support/Debug.h" #include "llvm/Support/raw_ostream.h" using namespace llvm; @@ -328,13 +329,15 @@ const char *ArgList::GetOrMakeJoinedArgString(unsigned Index, return MakeArgString(LHS + RHS); } -LLVM_DUMP_METHOD void ArgList::dump() const { +void ArgList::print(raw_ostream &O) const { for (Arg *A : *this) { - llvm::errs() << "* "; - A->dump(); + O << "* "; + A->print(O); } } +LLVM_DUMP_METHOD void ArgList::dump() const { print(dbgs()); } + // void InputArgList::releaseMemory() { diff --git a/lib/Option/Option.cpp b/lib/Option/Option.cpp index 221414d79e7..ebf05aab764 100644 --- a/lib/Option/Option.cpp +++ b/lib/Option/Option.cpp @@ -11,6 +11,7 @@ #include "llvm/ADT/Twine.h" #include "llvm/Option/Arg.h" #include "llvm/Option/ArgList.h" +#include "llvm/Support/Debug.h" #include "llvm/Support/ErrorHandling.h" #include "llvm/Support/raw_ostream.h" #include @@ -35,10 +36,10 @@ Option::Option(const OptTable::Info *info, const OptTable *owner) } } -void Option::dump() const { - llvm::errs() << "<"; +void Option::print(raw_ostream &O) const { + O << "<"; switch (getKind()) { -#define P(N) case N: llvm::errs() << #N; break +#define P(N) case N: O << #N; break P(GroupClass); P(InputClass); P(UnknownClass); @@ -54,33 +55,35 @@ void Option::dump() const { } if (Info->Prefixes) { - llvm::errs() << " Prefixes:["; - for (const char * const *Pre = Info->Prefixes; *Pre != nullptr; ++Pre) { - llvm::errs() << '"' << *Pre << (*(Pre + 1) == nullptr ? "\"" : "\", "); + O << " Prefixes:["; + for (const char *const *Pre = Info->Prefixes; *Pre != nullptr; ++Pre) { + O << '"' << *Pre << (*(Pre + 1) == nullptr ? "\"" : "\", "); } - llvm::errs() << ']'; + O << ']'; } - llvm::errs() << " Name:\"" << getName() << '"'; + O << " Name:\"" << getName() << '"'; const Option Group = getGroup(); if (Group.isValid()) { - llvm::errs() << " Group:"; - Group.dump(); + O << " Group:"; + Group.print(O); } const Option Alias = getAlias(); if (Alias.isValid()) { - llvm::errs() << " Alias:"; - Alias.dump(); + O << " Alias:"; + Alias.print(O); } if (getKind() == MultiArgClass) - llvm::errs() << " NumArgs:" << getNumArgs(); + O << " NumArgs:" << getNumArgs(); - llvm::errs() << ">\n"; + O << ">\n"; } +void Option::dump() const { print(dbgs()); } + bool Option::matches(OptSpecifier Opt) const { // Aliases are never considered in matching, look through them. const Option Alias = getAlias(); -- 2.34.1