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; 6 A(int a) { x = a; } 7 int getx() const { return x; } 8 }; 9 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 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 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