diff options
Diffstat (limited to 'test/Analysis/constraint_manager_negate_difference.c')
-rw-r--r-- | test/Analysis/constraint_manager_negate_difference.c | 14 |
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}} +} |