diff options
Diffstat (limited to 'test/Analysis/additive-folding.cpp')
-rw-r--r-- | test/Analysis/additive-folding.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/test/Analysis/additive-folding.cpp b/test/Analysis/additive-folding.cpp index 6ae025bbac2e..823b17600428 100644 --- a/test/Analysis/additive-folding.cpp +++ b/test/Analysis/additive-folding.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -analyze -analyzer-checker=core,debug.ExprInspection -verify -Wno-tautological-compare %s +// RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.ExprInspection -verify -Wno-tautological-compare %s void clang_analyzer_eval(bool); @@ -205,3 +205,12 @@ void multiplicativeSanityTest(int x) { clang_analyzer_eval(x == 3); // expected-warning{{UNKNOWN}} } + +void additiveSymSymFolding(int x, int y) { + // We should simplify 'x - 1' to '0' and handle the comparison, + // despite both sides being complicated symbols. + int z = x - 1; + if (x == 1) + if (y >= 0) + clang_analyzer_eval(z <= y); // expected-warning{{TRUE}} +} |