method-call.cpp revision 05e539175d9bac678fca8e77665e88b685729850
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