method-call.cpp revision 892697dd2287caf7c29aaaa82909b0e90b8b63fe
1// RUN: %clang_cc1 -analyze -analyzer-check-objc-mem -analyzer-inline-call -analyzer-store region -verify %s
2// XFAIL: *
3
4struct A {
5  int x;
6  A(int a) { x = a; }
7  int getx() const { return x; }
8};
9
10void f1() {
11  A x(3);
12  if (x.getx() == 3) {
13    int *p = 0;
14    *p = 3;  // expected-warning{{Dereference of null pointer}}
15  } else {
16    int *p = 0;
17    *p = 3;  // no-warning
18  }
19}
20
21void f2() {
22  const A &x = A(3);
23  if (x.getx() == 3) {
24    int *p = 0;
25    *p = 3;  // expected-warning{{Dereference of null pointer}}
26  } else {
27    int *p = 0;
28    *p = 3;  // no-warning
29  }
30}
31
32