summaryrefslogtreecommitdiff
path: root/tools/opt/opt.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2004-04-02 05:06:57 +0000
committerChris Lattner <sabre@nondot.org>2004-04-02 05:06:57 +0000
commit76351aa57e99ab9a947b899e0677933f3a385b4d (patch)
tree4929d5191d093b753f321a6dce7162ca2eaa200a /tools/opt/opt.cpp
parent909f6cf3501dbe358f36afca3f66f215eedd6802 (diff)
downloadllvm-76351aa57e99ab9a947b899e0677933f3a385b4d.tar.gz
llvm-76351aa57e99ab9a947b899e0677933f3a385b4d.tar.bz2
llvm-76351aa57e99ab9a947b899e0677933f3a385b4d.tar.xz
Fix wonky header
Address PR305: LLVM tools will happily spew bytecode onto your terminal git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12602 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/opt/opt.cpp')
-rw-r--r--tools/opt/opt.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/tools/opt/opt.cpp b/tools/opt/opt.cpp
index 35874b2ed7..582a5540e4 100644
--- a/tools/opt/opt.cpp
+++ b/tools/opt/opt.cpp
@@ -1,4 +1,4 @@
-//===----------------------------------------------------------------------===//
+//===- opt.cpp - The LLVM Modular Optimizer -------------------------------===//
//
// The LLVM Compiler Infrastructure
//
@@ -6,7 +6,6 @@
// the University of Illinois Open Source License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
-// LLVM Modular Optimizer Utility: opt
//
// Optimizations may be specified an arbitrary number of times on the command
// line, they are run in the order specified.
@@ -23,6 +22,7 @@
#include "llvm/Target/TargetMachineImpls.h"
#include "llvm/Support/PassNameParser.h"
#include "Support/Signals.h"
+#include "Support/SystemUtils.h"
#include <fstream>
#include <memory>
#include <algorithm>
@@ -114,6 +114,18 @@ int main(int argc, char **argv) {
RemoveFileOnSignal(OutputFilename);
}
+ // If the output is set to be emitted to standard out, and standard out is a
+ // console, print out a warning message and refuse to do it. We don't impress
+ // anyone by spewing tons of binary goo to a terminal.
+ if (Out == &std::cout && isStandardOutAConsole() && !Force && !NoOutput) {
+ std::cerr << "WARNING: It looks like you're attempting to print out a "
+ << "bytecode file. I'm\ngoing to pretend you didn't ask me to do"
+ << " this (for your own good). If you\nREALLY want to taste LLVM"
+ << " bytecode first hand, you can force output with the\n'-f'"
+ << " option.\n\n";
+ NoOutput = true;
+ }
+
// Create a PassManager to hold and optimize the collection of passes we are
// about to build...
//