After the investigation it seems safe to flip the switch.
Differential Revision: https://reviews.llvm.org/D43782
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@326157
91177308-0d34-0410-b5e6-
96231b3b80d8
if (ExplorationStrategy == ExplorationStrategyKind::NotSet) {
StringRef StratStr =
Config
- .insert(std::make_pair("exploration_strategy", "dfs"))
+ .insert(std::make_pair("exploration_strategy", "unexplored_first_queue"))
.first->second;
ExplorationStrategy =
llvm::StringSwitch<ExplorationStrategyKind>(StratStr)
// A variation on the theme above.
{
A a;
- a.foo() > 0 ? a.foo() : A(std::move(a)).foo(); // expected-note {{Assuming the condition is false}} expected-note {{'?' condition is false}}
+ a.foo() > 0 ? a.foo() : A(std::move(a)).foo(); // expected-note {{Assuming the condition is true}} expected-note {{'?' condition is true}}
}
// Same thing, but with a switch statement.
{
// RUN: %clang_analyze_cc1 -triple x86_64-apple-darwin10 %s -o /dev/null -analyzer-checker=core,osx.cocoa,debug.ConfigDumper -analyzer-max-loop 34 > %t 2>&1
-// RUN: FileCheck --input-file=%t %s
+// RUN: FileCheck --input-file=%t %s --match-full-lines
void bar() {}
void foo() {
// CHECK-NEXT: cfg-loopexit = false
// CHECK-NEXT: cfg-rich-constructors = true
// CHECK-NEXT: cfg-temporary-dtors = false
-// CHECK-NEXT: exploration_strategy = dfs
+// CHECK-NEXT: exploration_strategy = unexplored_first_queue
// CHECK-NEXT: faux-bodies = true
// CHECK-NEXT: graph-trim-interval = 1000
// CHECK-NEXT: inline-lambdas = true
// RUN: %clang_analyze_cc1 -triple x86_64-apple-darwin10 %s -o /dev/null -analyzer-checker=core,osx.cocoa,debug.ConfigDumper -analyzer-max-loop 34 > %t 2>&1
-// RUN: FileCheck --input-file=%t %s
+// RUN: FileCheck --input-file=%t %s --match-full-lines
void bar() {}
void foo() {
// CHECK-NEXT: cfg-loopexit = false
// CHECK-NEXT: cfg-rich-constructors = true
// CHECK-NEXT: cfg-temporary-dtors = false
-// CHECK-NEXT: exploration_strategy = dfs
+// CHECK-NEXT: exploration_strategy = unexplored_first_queue
// CHECK-NEXT: faux-bodies = true
// CHECK-NEXT: graph-trim-interval = 1000
// CHECK-NEXT: inline-lambdas = true
// RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.ExprInspection -analyzer-config unroll-loops=true,cfg-loopexit=true -verify -std=c++11 %s
+// RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.ExprInspection -analyzer-config unroll-loops=true,cfg-loopexit=true,exploration_strategy=dfs -verify -std=c++11 -DDFS=1 %s
void clang_analyzer_numTimesReached();
void clang_analyzer_warnIfReached();
int simple_unknown_bound_loop() {
for (int i = 2; i < getNum(); i++) {
+#ifdef DFS
clang_analyzer_numTimesReached(); // expected-warning {{10}}
+#else
+ clang_analyzer_numTimesReached(); // expected-warning {{13}}
+#endif
}
return 0;
}