aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnna Zaks <ganna@apple.com>2013-03-09 03:23:10 +0000
committerAnna Zaks <ganna@apple.com>2013-03-09 03:23:10 +0000
commit6cc4e25e76981ae47019bc47911724eaaf2f9a3f (patch)
tree43c0470e592435e2f8643dc3a96bb81ce7bb166e
parent9fe09f30f76cb65ca2a5fcd8e649f5b2f0cf02bd (diff)
[analyzer] Add test case for reference to null pointer param check
This tests that we track the original Expr if getDerefExpr fails. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176754 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--test/Analysis/diagnostics/deref-track-symbolic-region.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/test/Analysis/diagnostics/deref-track-symbolic-region.cpp b/test/Analysis/diagnostics/deref-track-symbolic-region.cpp
index bc2dcbdc26..e166109ef8 100644
--- a/test/Analysis/diagnostics/deref-track-symbolic-region.cpp
+++ b/test/Analysis/diagnostics/deref-track-symbolic-region.cpp
@@ -14,3 +14,15 @@ void test(S *p) {
r.y = 5; // expected-warning {{Access to field 'y' results in a dereference of a null pointer (loaded from variable 'r')}}
// expected-note@-1{{Access to field 'y' results in a dereference of a null pointer (loaded from variable 'r')}}
}
+
+void testRefParam(int *ptr) {
+ int &ref = *ptr; // expected-note {{'ref' initialized here}}
+ if (ptr)
+ // expected-note@-1{{Assuming 'ptr' is null}}
+ // expected-note@-2{{Taking false branch}}
+ return;
+
+ extern void use(int &ref);
+ use(ref); // expected-warning{{Forming reference to null pointer}}
+ // expected-note@-1{{Forming reference to null pointer}}
+} \ No newline at end of file