From 3c9509f82a8ddc04f233587397e6c0d787694fab Mon Sep 17 00:00:00 2001 From: David Greene Date: Mon, 20 Jul 2009 16:16:06 +0000 Subject: [PATCH] Hide the DOUT static variable behind a function interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76425 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Support/Debug.h | 8 ++++++-- lib/Support/Debug.cpp | 8 ++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/include/llvm/Support/Debug.h b/include/llvm/Support/Debug.h index 0ebed202e4b..489a076dc39 100644 --- a/include/llvm/Support/Debug.h +++ b/include/llvm/Support/Debug.h @@ -61,6 +61,11 @@ bool isCurrentDebugType(const char *Type); do { if (DebugFlag && isCurrentDebugType(DEBUG_TYPE)) { X; } } while (0) #endif +/// getNullOutputStream - Return a null string that does not output +/// anything. This hides the static variable from other modules. +/// +OStream &getNullOutputStream(); + /// getErrorOutputStream - Returns the error output stream (std::cerr). This /// 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. @@ -68,8 +73,7 @@ bool isCurrentDebugType(const char *Type); OStream &getErrorOutputStream(const char *DebugType); #ifdef NDEBUG -static llvm::OStream NullStream(0); -#define DOUT llvm::NullStream +#define DOUT llvm::getNullOutputStream() #else #define DOUT llvm::getErrorOutputStream(DEBUG_TYPE) #endif diff --git a/lib/Support/Debug.cpp b/lib/Support/Debug.cpp index a09cddf9022..b6beddb369d 100644 --- a/lib/Support/Debug.cpp +++ b/lib/Support/Debug.cpp @@ -64,6 +64,14 @@ bool llvm::isCurrentDebugType(const char *DebugType) { #endif } +/// getNullOutputStream - Return a null string that does not output +/// anything. This hides the static variable from other modules. +/// +OStream &llvm::getNullOutputStream() { + static llvm::OStream NullStream(0); + return NullStream; +} + // getErrorOutputStream - Returns the error output stream (std::cerr). This // 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. -- 2.34.1