From 76351aa57e99ab9a947b899e0677933f3a385b4d Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 2 Apr 2004 05:06:57 +0000 Subject: [PATCH] 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 --- tools/opt/opt.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/tools/opt/opt.cpp b/tools/opt/opt.cpp index 35874b2ed7e..582a5540e47 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 #include #include @@ -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... // -- 2.34.1