method-call.cpp revision 0e38d5d6775a26f8f39df353e34b0dc14c2d6cfc
1// RUN: %clang_cc1 -analyze -analyzer-check-objc-mem -analyzer-inline-call -analyzer-store region -verify %s
2
3struct A {
4  int x;
5  A(int a) { x = a; }
6  int getx() const { return x; }
7};
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
20void 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
31