1 // RUN: %clang_analyze_cc1 -analyzer-checker core,cplusplus -std=c++14 \ 2 // RUN: -analyzer-checker debug.ExprInspection -verify %s 3 4 void clang_analyzer_eval(bool); 5 6 struct A { 7 int x; 8 }; 9 10 A getA(); 11 12 struct B { 13 int *p; 14 A a; 15 BB16 B(int *p) : p(p), a(getA()) {} 17 }; 18 foo()19void foo() { 20 B b1(nullptr); 21 clang_analyzer_eval(b1.p == nullptr); // expected-warning{{TRUE}} 22 B b2(new int); // No leak yet! 23 clang_analyzer_eval(b2.p == nullptr); // expected-warning{{FALSE}} 24 // expected-warning@-1{{Potential leak of memory pointed to by 'b2.p'}} 25 } 26