summaryrefslogtreecommitdiffstats
path: root/test/Analysis/constraint_manager_negate_difference.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/Analysis/constraint_manager_negate_difference.c')
-rw-r--r--test/Analysis/constraint_manager_negate_difference.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/test/Analysis/constraint_manager_negate_difference.c b/test/Analysis/constraint_manager_negate_difference.c
index 2236c1693b..4412ae0e97 100644
--- a/test/Analysis/constraint_manager_negate_difference.c
+++ b/test/Analysis/constraint_manager_negate_difference.c
@@ -96,3 +96,17 @@ void negate_mixed(int m, int n) {
return;
clang_analyzer_eval(n - m <= 0); // expected-warning{{TRUE}}
}
+
+void effective_range(int m, int n) {
+ assert(m - n >= 0);
+ assert(n - m >= 0);
+ clang_analyzer_eval(m - n == 0); // expected-warning{{TRUE}}
+ clang_analyzer_eval(n - m == 0); // expected-warning{{TRUE}}
+}
+
+void effective_range_2(int m, int n) {
+ assert(m - n <= 0);
+ assert(n - m <= 0);
+ clang_analyzer_eval(m - n == 0); // expected-warning{{TRUE}} expected-warning{{FALSE}}
+ clang_analyzer_eval(n - m == 0); // expected-warning{{TRUE}} expected-warning{{FALSE}}
+}