summaryrefslogtreecommitdiffstats
path: root/clang/test/Analysis/bool-assignment.c
diff options
context:
space:
mode:
authorArtem Dergachev <artem.dergachev@gmail.com>2016-01-18 10:17:16 +0000
committerArtem Dergachev <artem.dergachev@gmail.com>2016-01-18 10:17:16 +0000
commit91c45e8f46aed4dada620043b98060503247299c (patch)
tree07f299d3ab4e464947cb328a95a49cf876a69d68 /clang/test/Analysis/bool-assignment.c
parent836d96516817a9f6976565302d3d3ae2775f05c8 (diff)
downloadbcm5719-llvm-91c45e8f46aed4dada620043b98060503247299c.tar.gz
bcm5719-llvm-91c45e8f46aed4dada620043b98060503247299c.zip
[analyzer] Fix an off-by-one in evalIntegralCast()
Make sure that we do not add SymbolCast at the very boundary of the range in which the cast would not certainly happen. Differential Revision: http://reviews.llvm.org/D16178 llvm-svn: 258039
Diffstat (limited to 'clang/test/Analysis/bool-assignment.c')
-rw-r--r--clang/test/Analysis/bool-assignment.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/clang/test/Analysis/bool-assignment.c b/clang/test/Analysis/bool-assignment.c
index 0f782fbfd9a..285569ee11b 100644
--- a/clang/test/Analysis/bool-assignment.c
+++ b/clang/test/Analysis/bool-assignment.c
@@ -42,6 +42,15 @@ void test_BOOL_initialization(int y) {
BOOL x = y; // expected-warning {{Assignment of a non-Boolean value}}
return;
}
+ if (y > 200 && y < 250) {
+ // FIXME: Currently we are loosing this warning due to a SymbolCast in RHS.
+ BOOL x = y; // no-warning
+ return;
+ }
+ if (y >= 127 && y < 150) {
+ BOOL x = y; // expected-warning{{Assignment of a non-Boolean value}}
+ return;
+ }
if (y > 1) {
BOOL x = y; // expected-warning {{Assignment of a non-Boolean value}}
return;
OpenPOWER on IntegriCloud