blob: c2db144b8a72443235b39a90a5d2901f521c2138 [file] [log] [blame]
// RUN: %clang_analyze_cc1 -triple=x86_64-unknown-linux-gnu %s \
// RUN: -analyzer-checker=debug.ExprInspection \
// RUN: -verify
void clang_analyzer_eval(int);
void clang_analyzer_value(int);
void test_derived_sym_simplification_on_assume(int s0, int s1) {
int elem = s0 + s1 + 1;
if (elem-- == 0)
return;
if (elem-- == 0)
return;
if (s0 < 1)
return;
clang_analyzer_value(s0); // expected-warning{{[1, 2147483647]}}
if (s1 < 1)
return;
clang_analyzer_value(s1); // expected-warning{{[1, 2147483647]}}
clang_analyzer_eval(elem); // expected-warning{{UNKNOWN}}
if (elem-- == 0)
return;
if (s0 > 1)
return;
clang_analyzer_eval(s0 == 1); // expected-warning{{TRUE}}
if (s1 > 1)
return;
clang_analyzer_eval(s1 == 1); // expected-warning{{TRUE}}
clang_analyzer_eval(elem); // expected-warning{{FALSE}}
}