comparison clang/test/Analysis/rvo.cpp @ 150:1d019706d866

LLVM10
author anatofuz
date Thu, 13 Feb 2020 15:10:13 +0900
parents
children
comparison
equal deleted inserted replaced
147:c2174574ed3a 150:1d019706d866
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
16 B(int *p) : p(p), a(getA()) {}
17 };
18
19 void 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 }