blob: 8c6b9da0f40163d8026b30a6a5673c65f84b16c3 [file] [log] [blame]
Zhongxing Xu7b99d122010-05-06 02:59:29 +00001// RUN: %clang_cc1 -analyze -analyzer-check-objc-mem -analyzer-inline-call -analyzer-store region -verify %s
Zhongxing Xu7ce351d2010-11-01 09:09:44 +00002
Zhongxing Xu40ab43b2010-04-20 05:48:57 +00003struct A {
4 int x;
5 A(int a) { x = a; }
Zhongxing Xu32303022010-11-24 13:48:50 +00006 int getx() const { return x; }
Zhongxing Xu40ab43b2010-04-20 05:48:57 +00007};
8
9void f1() {
10 A x(3);
11 if (x.getx() == 3) {
12 int *p = 0;
13 *p = 3; // expected-warning{{Dereference of null pointer}}
14 } else {
15 int *p = 0;
16 *p = 3; // no-warning
17 }
18}
19
Zhongxing Xu0e38d5d2010-11-25 03:18:57 +000020void f2() {
21 const A &x = A(3);
22 if (x.getx() == 3) {
23 int *p = 0;
24 *p = 3; // expected-warning{{Dereference of null pointer}}
25 } else {
26 int *p = 0;
27 *p = 3; // no-warning
28 }
29}
30