aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2009-07-15 17:04:50 +0000
committerDan Gohman <gohman@apple.com>2009-07-15 17:04:50 +0000
commit81fd8108e89f996caef41df734d5b514af847175 (patch)
treeb061312c9ad0d1551a5438eca1cafe559099d26b
parentbabe50c205003864f5d0081dbc635e0831d73ce8 (diff)
downloadexternal_llvm-81fd8108e89f996caef41df734d5b514af847175.zip
external_llvm-81fd8108e89f996caef41df734d5b514af847175.tar.gz
external_llvm-81fd8108e89f996caef41df734d5b514af847175.tar.bz2
Add a raw_ostream version of CheckBitcodeOutputToConsole.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75796 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/Support/SystemUtils.h10
-rw-r--r--lib/Support/SystemUtils.cpp15
2 files changed, 25 insertions, 0 deletions
diff --git a/include/llvm/Support/SystemUtils.h b/include/llvm/Support/SystemUtils.h
index 9a33fa3..95124a0 100644
--- a/include/llvm/Support/SystemUtils.h
+++ b/include/llvm/Support/SystemUtils.h
@@ -29,6 +29,16 @@ bool CheckBitcodeOutputToConsole(
bool print_warning = true ///< Control whether warnings are printed
);
+/// Determine if the raw_ostream provided is connected to the outs() and
+/// displayed or not (to a console window). If so, generate a warning message
+/// advising against display of bitcode and return true. Otherwise just return
+/// false
+/// @brief Check for output written to a console
+bool CheckBitcodeOutputToConsole(
+ raw_ostream* stream_to_check, ///< The stream to be checked
+ bool print_warning = true ///< Control whether warnings are printed
+);
+
/// FindExecutable - Find a named executable, giving the argv[0] of program
/// being executed. This allows us to find another LLVM tool if it is built into
/// the same directory, but that directory is neither the current directory, nor
diff --git a/lib/Support/SystemUtils.cpp b/lib/Support/SystemUtils.cpp
index c86e200..49a87e4 100644
--- a/lib/Support/SystemUtils.cpp
+++ b/lib/Support/SystemUtils.cpp
@@ -19,6 +19,21 @@
#include <ostream>
using namespace llvm;
+bool llvm::CheckBitcodeOutputToConsole(raw_ostream* stream_to_check,
+ bool print_warning) {
+ if (stream_to_check == &outs() &&
+ sys::Process::StandardOutIsDisplayed()) {
+ if (print_warning) {
+ cerr << "WARNING: You're attempting to print out a bitcode file.\n"
+ << "This is inadvisable as it may cause display problems. If\n"
+ << "you REALLY want to taste LLVM bitcode first-hand, you\n"
+ << "can force output with the `-f' option.\n\n";
+ }
+ return true;
+ }
+ return false;
+}
+
bool llvm::CheckBitcodeOutputToConsole(std::ostream* stream_to_check,
bool print_warning) {
if (stream_to_check == cout.stream() &&