diff options
| author | Anna Zaks <ganna@apple.com> | 2013-03-09 03:23:10 +0000 |
|---|---|---|
| committer | Anna Zaks <ganna@apple.com> | 2013-03-09 03:23:10 +0000 |
| commit | cdbca7ae773700518be46cbba062ecb0cfe75ac1 (patch) | |
| tree | f62000ea7fd66171c551ec3f341281f521d1266d /clang/test/Analysis/diagnostics/deref-track-symbolic-region.cpp | |
| parent | 5a23444033df846cfe1ad4ba99e44059dce13bb5 (diff) | |
| download | bcm5719-llvm-cdbca7ae773700518be46cbba062ecb0cfe75ac1.tar.gz bcm5719-llvm-cdbca7ae773700518be46cbba062ecb0cfe75ac1.zip | |
[analyzer] Add test case for reference to null pointer param check
This tests that we track the original Expr if getDerefExpr fails.
llvm-svn: 176754
Diffstat (limited to 'clang/test/Analysis/diagnostics/deref-track-symbolic-region.cpp')
| -rw-r--r-- | clang/test/Analysis/diagnostics/deref-track-symbolic-region.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/clang/test/Analysis/diagnostics/deref-track-symbolic-region.cpp b/clang/test/Analysis/diagnostics/deref-track-symbolic-region.cpp index bc2dcbdc267..e166109ef81 100644 --- a/clang/test/Analysis/diagnostics/deref-track-symbolic-region.cpp +++ b/clang/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 |

