From 6cc4e25e76981ae47019bc47911724eaaf2f9a3f Mon Sep 17 00:00:00 2001
From: Anna Zaks <ganna@apple.com>
Date: Sat, 9 Mar 2013 03:23:10 +0000
Subject: [PATCH] [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
---
 .../diagnostics/deref-track-symbolic-region.cpp      | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/test/Analysis/diagnostics/deref-track-symbolic-region.cpp b/test/Analysis/diagnostics/deref-track-symbolic-region.cpp
index bc2dcbdc267..e166109ef81 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
-- 
GitLab