diff options
author | Artem Dergachev <artem.dergachev@gmail.com> | 2016-01-18 10:17:16 +0000 |
---|---|---|
committer | Artem Dergachev <artem.dergachev@gmail.com> | 2016-01-18 10:17:16 +0000 |
commit | 91c45e8f46aed4dada620043b98060503247299c (patch) | |
tree | 07f299d3ab4e464947cb328a95a49cf876a69d68 /clang/test/Analysis/bool-assignment.c | |
parent | 836d96516817a9f6976565302d3d3ae2775f05c8 (diff) | |
download | bcm5719-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.c | 9 |
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; |