brintos

brintos / llvm-project-archived public Read only

0
0
Text · 561 B · 7215fbb Raw
26 lines · cpp
1// RUN: %clang_analyze_cc1 -analyzer-checker core,cplusplus -std=c++14 \2// RUN:                    -analyzer-checker debug.ExprInspection -verify %s3 4void clang_analyzer_eval(bool);5 6struct A {7  int x;8};9 10A getA();11 12struct B {13  int *p;14  A a;15 16  B(int *p) : p(p), a(getA()) {}17};18 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