]> granicus.if.org Git - clang/commitdiff
[analyzer] Add test case for reference to null pointer param check
authorAnna Zaks <ganna@apple.com>
Sat, 9 Mar 2013 03:23:10 +0000 (03:23 +0000)
committerAnna Zaks <ganna@apple.com>
Sat, 9 Mar 2013 03:23:10 +0000 (03:23 +0000)
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

test/Analysis/diagnostics/deref-track-symbolic-region.cpp

index bc2dcbdc26796c7363ecbb5b8a75c334b00a15c4..e166109ef8168043d665329cb4b410ee4b013b9f 100644 (file)
@@ -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