aboutsummaryrefslogtreecommitdiff
path: root/tools/clang-cc
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2009-11-13 01:15:47 +0000
committerTed Kremenek <kremenek@apple.com>2009-11-13 01:15:47 +0000
commiteb94113be0ee5f4d38408b413d92464a0bc16b55 (patch)
treeb4e85114961d1effbc84af3bde3e846bd2788bfb /tools/clang-cc
parent21dac5e24a14d3288565515b35ad98c38460c9dd (diff)
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
Diffstat (limited to 'tools/clang-cc')
-rw-r--r--tools/clang-cc/Options.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/tools/clang-cc/Options.cpp b/tools/clang-cc/Options.cpp
index 5d01e03a9c..5b3800f3f2 100644
--- a/tools/clang-cc/Options.cpp
+++ b/tools/clang-cc/Options.cpp
@@ -78,11 +78,15 @@ static llvm::cl::opt<bool>
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 @@ static llvm::cl::opt<bool>
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 @@ void clang::InitializeAnalyzerOptions(AnalyzerOptions &Opts) {
Opts.PurgeDead = PurgeDead;
Opts.EagerlyAssume = EagerlyAssume;
Opts.AnalyzeSpecificFunction = AnalyzeSpecificFunction;
+ Opts.EnableExperimentalChecks = AnalyzerExperimentalChecks;
Opts.TrimGraph = TrimGraph;
}