// RUN: %clang_analyze_cc1 -w -x c++ -analyzer-checker=core -analyzer-output=text -verify %s
namespacepr34731{int b;classc{classB{public:double***d;B();};voide(double**,int);voidf(B &,int&);};// Properly track the null pointer in the array field back to the default
// constructor of 'h'.
voidc::f(B &g,int&i){e(g.d[9], i);// expected-warning{{Array access (via field 'd') results in a null pointer dereference}}
// expected-note@-1{{Array access (via field 'd') results in a null pointer dereference}}
B h, a;// expected-note{{Value assigned to 'h.d'}}
a.d== __null;// expected-note{{Assuming the condition is true}}
a.d!= h.d;// expected-note{{Assuming 'a.d' is equal to 'h.d'}}
f(h, b);// expected-note{{Calling 'c::f'}}
}}