From: Daniel Dunbar Date: Tue, 21 Jul 2009 20:06:58 +0000 (+0000) Subject: driver: Print --version on stdout, to match gcc. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=793007242ba209b68ce14ec7547ac70ee981303a;p=clang driver: Print --version on stdout, to match gcc. - Patch by Jean-Daniel Dupas git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76632 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Driver/Driver.h b/include/clang/Driver/Driver.h index c0def2bcca..623485bc6a 100644 --- a/include/clang/Driver/Driver.h +++ b/include/clang/Driver/Driver.h @@ -21,6 +21,9 @@ #include #include +namespace llvm { + class raw_ostream; +} namespace clang { namespace driver { class Action; @@ -185,7 +188,7 @@ public: void PrintOptions(const ArgList &Args) const; /// PrintVersion - Print the driver version. - void PrintVersion(const Compilation &C) const; + void PrintVersion(const Compilation &C, llvm::raw_ostream &OS) const; /// GetFilePath - Lookup \arg Name in the list of file search paths. /// diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp index df72426057..c4136df56b 100644 --- a/lib/Driver/Driver.cpp +++ b/lib/Driver/Driver.cpp @@ -385,7 +385,7 @@ void Driver::PrintHelp(bool ShowHidden) const { OS.flush(); } -void Driver::PrintVersion(const Compilation &C) const { +void Driver::PrintVersion(const Compilation &C, llvm::raw_ostream &OS) const { static char buf[] = "$URL$"; char *zap = strstr(buf, "/lib/Driver"); if (zap) @@ -402,17 +402,16 @@ void Driver::PrintVersion(const Compilation &C) const { #endif // FIXME: The following handlers should use a callback mechanism, we // don't know what the client would like to do. - - llvm::errs() << "clang version " CLANG_VERSION_STRING " (" + OS << "clang version " CLANG_VERSION_STRING " (" << vers << " " << revision << ")" << '\n'; const ToolChain &TC = C.getDefaultToolChain(); - llvm::errs() << "Target: " << TC.getTripleString() << '\n'; + OS << "Target: " << TC.getTripleString() << '\n'; // Print the threading model. // // FIXME: Implement correctly. - llvm::errs() << "Thread model: " << "posix" << '\n'; + OS << "Thread model: " << "posix" << '\n'; } bool Driver::HandleImmediateArgs(const Compilation &C) { @@ -432,13 +431,14 @@ bool Driver::HandleImmediateArgs(const Compilation &C) { } if (C.getArgs().hasArg(options::OPT__version)) { - PrintVersion(C); + // Follow gcc behavior and use stdout for --version and stderr for -v + PrintVersion(C, llvm::outs()); return false; } if (C.getArgs().hasArg(options::OPT_v) || C.getArgs().hasArg(options::OPT__HASH_HASH_HASH)) { - PrintVersion(C); + PrintVersion(C, llvm::errs()); SuppressMissingInputWarning = true; }