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