summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorPierre Gousseau <pierregousseau14@gmail.com>2016-01-12 10:40:45 +0000
committerPierre Gousseau <pierregousseau14@gmail.com>2016-01-12 10:40:45 +0000
commitbdd9da14d653c5b9616cb8562f58513c0c781964 (patch)
tree2cc0e8307aae579bad4ce1d1d967478e8c2ff1a5 /clang/test
parentf617e678e90c85a1fc733ad8ce93ffc51cfd4f72 (diff)
downloadbcm5719-llvm-bdd9da14d653c5b9616cb8562f58513c0c781964.tar.gz
bcm5719-llvm-bdd9da14d653c5b9616cb8562f58513c0c781964.zip
[analyzer] Fix RangeConstraintManager's pinning of single value ranges.
This fix a bug in RangeSet::pin causing single value ranges to be considered non conventionally ordered. Differential Revision: http://reviews.llvm.org/D12901 llvm-svn: 257467
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/Analysis/range_casts.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/clang/test/Analysis/range_casts.c b/clang/test/Analysis/range_casts.c
index f056cb85a33..682369cce66 100644
--- a/clang/test/Analysis/range_casts.c
+++ b/clang/test/Analysis/range_casts.c
@@ -73,6 +73,16 @@ void f7(long foo)
clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}}
}
+void f8(long foo)
+{
+ unsigned index = -1;
+ if (index < foo) index = foo;
+ if (index + 1L == 0L)
+ clang_analyzer_warnIfReached(); // no-warning
+ else
+ clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}}
+}
+
void f9(long foo)
{
unsigned index = -1;
@@ -93,6 +103,16 @@ void f10(long foo)
clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}}
}
+void f11(long foo)
+{
+ unsigned index = -1;
+ if (index < foo) index = foo;
+ if (index + 1UL == 0L)
+ clang_analyzer_warnIfReached(); // no-warning
+ else
+ clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}}
+}
+
void f12(long foo)
{
unsigned index = -1;
@@ -103,6 +123,16 @@ void f12(long foo)
clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}}
}
+void f13(int foo)
+{
+ unsigned short index = -1;
+ if (index < foo) index = foo;
+ if (index + 1 == 0)
+ clang_analyzer_warnIfReached(); // no-warning
+ else
+ clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}}
+}
+
void f14(long foo)
{
unsigned index = -1;
OpenPOWER on IntegriCloud