Move check of command line options after command line parsing.
authorTobias Grosser <grosser@fim.uni-passau.de>
Thu, 2 Dec 2010 20:35:16 +0000 (20:35 +0000)
committerTobias Grosser <grosser@fim.uni-passau.de>
Thu, 2 Dec 2010 20:35:16 +0000 (20:35 +0000)
The check to not allow -analyze and -disable-output at the same time was done
before parsing the command line flags. Therefore it never triggered, and in case
both options where used opt segfaulted. Fix this by moving this check a after
command line parsing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120732 91177308-0d34-0410-b5e6-96231b3b80d8

tools/opt/opt.cpp

index 269b936c24801d57b6de10224697214dd1cd8bd9..2b6109f2bc168bba2326a0bf58cee50aadb1ad19 100644 (file)
@@ -418,11 +418,6 @@ int main(int argc, char **argv) {
   sys::PrintStackTraceOnErrorSignal();
   llvm::PrettyStackTraceProgram X(argc, argv);
 
-  if (AnalyzeOnly && NoOutput) {
-    errs() << argv[0] << ": analyze mode conflicts with no-output mode.\n";
-    return 1;
-  }
-  
   // Enable debug stream buffering.
   EnableDebugBuffering = true;
 
@@ -444,6 +439,11 @@ int main(int argc, char **argv) {
   cl::ParseCommandLineOptions(argc, argv,
     "llvm .bc -> .bc modular optimizer and analysis printer\n");
 
+  if (AnalyzeOnly && NoOutput) {
+    errs() << argv[0] << ": analyze mode conflicts with no-output mode.\n";
+    return 1;
+  }
+
   // Allocate a full target machine description only if necessary.
   // FIXME: The choice of target should be controllable on the command line.
   std::auto_ptr<TargetMachine> target;