Share some code that is common between integer and
[oota-llvm.git] / lib / Support / Debug.cpp
index 949e3d932a8878f653b782f36ed825faaee43af5..a09cddf9022a5fc2086465ce8504c44b28749b92 100644 (file)
@@ -2,8 +2,8 @@
 //
 //                     The LLVM Compiler Infrastructure
 //
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
 //
@@ -33,19 +33,19 @@ namespace {
 #ifndef NDEBUG
   // -debug - Command line option to enable the DEBUG statements in the passes.
   // This flag may only be enabled in debug builds.
-  cl::opt<bool, true>
+  static cl::opt<bool, true>
   Debug("debug", cl::desc("Enable debug output"), cl::Hidden,
         cl::location(DebugFlag));
 
-  std::string CurrentDebugType;
-  struct DebugOnlyOpt {
+  static std::string CurrentDebugType;
+  static struct DebugOnlyOpt {
     void operator=(const std::string &Val) const {
       DebugFlag |= !Val.empty();
       CurrentDebugType = Val;
     }
   } DebugOnlyOptLoc;
 
-  cl::opt<DebugOnlyOpt, true, cl::parser<std::string> >
+  static cl::opt<DebugOnlyOpt, true, cl::parser<std::string> >
   DebugOnly("debug-only", cl::desc("Enable a specific type of debug output"),
             cl::Hidden, cl::value_desc("debug string"),
             cl::location(DebugOnlyOptLoc), cl::ValueRequired);
@@ -68,9 +68,10 @@ bool llvm::isCurrentDebugType(const char *DebugType) {
 // places the std::c* I/O streams into one .cpp file and relieves the whole
 // program from having to have hundreds of static c'tor/d'tors for them.
 // 
-OStream llvm::getErrorOutputStream(const char *DebugType) {
+OStream &llvm::getErrorOutputStream(const char *DebugType) {
+  static OStream cnoout(0);
   if (DebugFlag && isCurrentDebugType(DebugType))
     return cerr;
   else
-    return NullStream;
+    return cnoout;
 }