1 // RUN: %clang_cc1 -analyze -analyzer-checker=core -analyzer-inline-call -analyzer-store region -verify %s
2 // XFAIL: *
3
4 struct A {
5 int x;
AA6 A(int a) { x = a; }
getxA7 int getx() const { return x; }
8 };
9
f1()10 void 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
f2()21 void 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
f3()32 void f3() {
33 const A &x = (A)3;
34 if (x.getx() == 3) {
35 int *p = 0;
36 *p = 3; // expected-warning{{Dereference of null pointer}}
37 } else {
38 int *p = 0;
39 *p = 3; // no-warning
40 }
41 }
42