diff --git a/include/llvm/Option/Arg.h b/include/llvm/Option/Arg.h index e1b72b6267cf1..f56ef080dcfb9 100644 --- a/include/llvm/Option/Arg.h +++ b/include/llvm/Option/Arg.h @@ -18,6 +18,7 @@ #include "llvm/ADT/SmallVector.h" #include "llvm/ADT/StringRef.h" #include "llvm/Option/Option.h" +#include "llvm/Support/raw_ostream.h" #include namespace llvm { @@ -113,6 +114,8 @@ class Arg { /// when rendered as a input (e.g., Xlinker). void renderAsInput(const ArgList &Args, ArgStringList &Output) const; + void print(raw_ostream &OS) const; + void dump() const; /// \brief Return a formatted version of the argument and diff --git a/lib/Option/Arg.cpp b/lib/Option/Arg.cpp index ac000736c1f3a..b14493d7dd79f 100644 --- a/lib/Option/Arg.cpp +++ b/lib/Option/Arg.cpp @@ -12,7 +12,7 @@ #include "llvm/ADT/Twine.h" #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,21 +43,24 @@ Arg::~Arg() { } } -void Arg::dump() const { - llvm::errs() << "<"; +void Arg::print(raw_ostream &OS) const { + OS << "<"; - llvm::errs() << " Opt:"; + OS << " Opt:"; Opt.dump(); - llvm::errs() << " Index:" << Index; + OS << " Index:" << Index; - llvm::errs() << " Values: ["; + OS << " Values: ["; for (unsigned i = 0, e = Values.size(); i != e; ++i) { - if (i) llvm::errs() << ", "; - llvm::errs() << "'" << Values[i] << "'"; + OS << "'" << Values[i] << "'"; + if (i != e - 1) llvm::errs() << ", "; } + OS << "]>\n"; +} - llvm::errs() << "]>\n"; +void Arg::dump() const { + print(llvm::dbgs()); } std::string Arg::getAsString(const ArgList &Args) const {