Add clang-cc option "-analyzer-experimental-checks" to enable experimental path-sensitive checks.  The idea is to separate "barely working" or "skunkworks" checks from ones that should always run.  Later we need more fine-grain checker control.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87053 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/clang-cc/Options.cpp b/tools/clang-cc/Options.cpp
index 5d01e03..5b3800f 100644
--- a/tools/clang-cc/Options.cpp
+++ b/tools/clang-cc/Options.cpp
@@ -78,11 +78,15 @@
 AnalyzeAll("analyzer-opt-analyze-headers",
     llvm::cl::desc("Force the static analyzer to analyze "
                    "functions defined in header files"));
-
+  
 static llvm::cl::opt<bool>
 AnalyzerDisplayProgress("analyzer-display-progress",
-          llvm::cl::desc("Emit verbose output about the analyzer's progress."));
+          llvm::cl::desc("Emit verbose output about the analyzer's progress"));
 
+static llvm::cl::opt<bool>
+AnalyzerExperimentalChecks("analyzer-experimental-checks",
+          llvm::cl::desc("Use experimental path-sensitive checks"));
+  
 static llvm::cl::opt<std::string>
 AnalyzeSpecificFunction("analyze-function",
                llvm::cl::desc("Run analysis on specific function"));
@@ -91,13 +95,13 @@
 EagerlyAssume("analyzer-eagerly-assume",
           llvm::cl::init(false),
               llvm::cl::desc("Eagerly assume the truth/falseness of some "
-                             "symbolic constraints."));
+                             "symbolic constraints"));
 
 static llvm::cl::opt<bool>
 PurgeDead("analyzer-purge-dead",
           llvm::cl::init(true),
           llvm::cl::desc("Remove dead symbols, bindings, and constraints before"
-                         " processing a statement."));
+                         " processing a statement"));
 
 static llvm::cl::opt<bool>
 TrimGraph("trim-egraph",
@@ -126,6 +130,7 @@
   Opts.PurgeDead = PurgeDead;
   Opts.EagerlyAssume = EagerlyAssume;
   Opts.AnalyzeSpecificFunction = AnalyzeSpecificFunction;
+  Opts.EnableExperimentalChecks = AnalyzerExperimentalChecks;
   Opts.TrimGraph = TrimGraph;
 }