Static Analyzer driver/options (partial) cleanup:
- Move all analyzer options logic to AnalysisConsumer.cpp.
- Unified specification of stores/constraints/output to be:
   -analyzer-output=...
   -analyzer-store=...
   -analyzer-constraints=...
  instead of -analyzer-range-constraints, -analyzer-store-basic, etc.
- Updated drivers (ccc-analyzer, scan-builds, new ccc) to obey this new
  interface
- Updated test cases to conform to new driver options


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64737 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/utils/ccc-analyzer b/utils/ccc-analyzer
index 2a9a993..d9d4f1c 100755
--- a/utils/ccc-analyzer
+++ b/utils/ccc-analyzer
@@ -267,9 +267,15 @@
 
 # Get the store model.
 my $StoreModel = $ENV{'CCC_ANALYZER_STORE_MODEL'};
+if (!defined $StoreModel) { $StoreModel = "basic"; }
+
+# Get the constraints engine.
+my $ConstraintsModel = $ENV{'CCC_ANALYZER_CONSTRAINTS_MODEL'};
+if (!defined $ConstraintsModel) { $ConstraintsModel = "basic"; }
 
 # Get the output format.
 my $OutputFormat = $ENV{'CCC_ANALYZER_OUTPUT_FORMAT'};
+if (!defined OutputFormat) { $OutputFormat = "html"; }
 
 # Determine the level of verbosity.
 my $Verbose = 0;
@@ -447,11 +453,15 @@
     }
 
     if (defined $StoreModel) {
-      push @AnalyzeArgs, $StoreModel;
+      push @AnalyzeArgs, "-analyzer-store=$StoreModel";
     }
-    
+
+    if (defined $ConstraintsModel) {
+      push @AnalyzeArgs, "-analyzer-constraints=$ConstraintsModel";
+    }
+
     if (defined $OutputFormat) {
-      push @AnalyzeArgs, "-analyzer-output-" . $OutputFormat;
+      push @AnalyzeArgs, "-analyzer-output=" . $OutputFormat;
       if ($OutputFormat eq "plist") {
         # Change "Output" to be a file.
         my ($h, $f) = tempfile("report-XXXXXX", SUFFIX => ".plist",
@@ -459,7 +469,6 @@
         $ResultFile = $f;
         $CleanupFile = $f;
       }
-      
     }
 
     push @AnalyzeArgs,@CompileOpts;
diff --git a/utils/scan-build b/utils/scan-build
index 39b9ede..bc690d5 100755
--- a/utils/scan-build
+++ b/utils/scan-build
@@ -850,11 +850,6 @@
 
  -analyze-headers - Also analyze functions in #included files.
 
- -store [model] - Specify the store model used by the analyzer. By default,
-                  the 'basic' store model is used. 'region' specifies a field-
-                  sensitive store model. Be warned that the 'region' model
-                  is still in very early testing phase and may often crash.
-
  -o             - Target directory for HTML report files.  Subdirectories
                   will be created as needed to represent separate "runs" of
                   the analyzer.  If this option is not specified, a directory
@@ -893,6 +888,16 @@
  -V             - View analysis results in a web browser when the build
  --view           completes.
 
+ADVANCED OPTIONS:
+
+ -constraints [model] - Specify the contraint model used by the analyzer.
+                        By default the 'basic' model is used.  'range' adds
+                        experimental range tracking for program values.
+
+ -store [model] - Specify the store model used by the analyzer. By default,
+                  the 'basic' store model is used. 'region' specifies a field-
+                  sensitive store model. Be warned that the 'region' model
+                  is still in very early testing phase and may often crash.
 
 AVAILABLE ANALYSES (multiple analyses may be specified):
 
@@ -966,6 +971,7 @@
 my $ExitStatusFoundBugs = 0; # Exit status reflects whether bugs were found
 my @AnalysesToRun;
 my $StoreModel;
+my $ConstraintsModel;
 my $OutputFormat;
 
 if (!@ARGV) {
@@ -1082,7 +1088,13 @@
 
   if ($arg eq "-store") {
     shift @ARGV;
-    $StoreModel = '-analyzer-store-' . shift @ARGV;
+    $StoreModel = shift @ARGV;
+    next;
+  }
+  
+  if ($arg eq "-constraints") {
+    shift @ARGV;
+    $ConstraintsModel = shift @ARGV;
     next;
   }
   
@@ -1159,6 +1171,10 @@
   $ENV{'CCC_ANALYZER_STORE_MODEL'} = $StoreModel;
 }
 
+if (defined $ConstraintsModel) {
+  $ENV{'CCC_ANALYZER_CONSTRAINTS_MODEL'} = $ConstraintsModel;
+}
+
 if (defined $OutputFormat) {
   $ENV{'CCC_ANALYZER_OUTPUT_FORMAT'} = $OutputFormat;
 }