mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-04 09:54:09 +00:00
Implement a function to print a warning if bytecode output is to be sent to
a terminal/console. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19237 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
c6dffe0a5b
commit
436f23ebf5
@ -19,9 +19,12 @@
|
||||
|
||||
namespace llvm {
|
||||
|
||||
/// isStandardOutAConsole - Return true if we can tell that the standard output
|
||||
/// stream goes to a terminal window or console.
|
||||
bool isStandardOutAConsole();
|
||||
/// Determine if the ostream provided is connected to the std::cout and
|
||||
/// displayed or not (to a console window). If so, generate a warning message
|
||||
/// advising against display of bytecode and return true. Otherwise just return
|
||||
/// false
|
||||
/// @brief Check for output written to a console
|
||||
bool CheckBytecodeOutputToConsole(std::ostream* stream_to_check);
|
||||
|
||||
/// 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
|
||||
|
@ -14,20 +14,22 @@
|
||||
|
||||
#include "llvm/Support/SystemUtils.h"
|
||||
#include "llvm/System/Program.h"
|
||||
#include "llvm/System/Process.h"
|
||||
#include <iostream>
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
/// isStandardOutAConsole - Return true if we can tell that the standard output
|
||||
/// stream goes to a terminal window or console.
|
||||
bool llvm::isStandardOutAConsole() {
|
||||
#if HAVE_ISATTY
|
||||
return isatty(1);
|
||||
#endif
|
||||
// If we don't have isatty, just return false.
|
||||
bool llvm::CheckBytecodeOutputToConsole(std::ostream* stream_to_check) {
|
||||
if (stream_to_check == &std::cout && sys::Process::StandardOutIsDisplayed()) {
|
||||
std::cerr << "WARNING: You're attempting to print out a bytecode file.\n";
|
||||
std::cerr << "This is inadvisable as it may cause display problems. If\n";
|
||||
std::cerr << "you REALLY want to taste LLVM bytecode first-hand, you can\n";
|
||||
std::cerr << "force output with the `-f' option.\n\n";
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/// 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
|
||||
|
Loading…
Reference in New Issue
Block a user