]> granicus.if.org Git - clang/commit
[analyzer] Re-enable lifetime extension for temporaries without destructors.
authorArtem Dergachev <artem.dergachev@gmail.com>
Thu, 28 Jun 2018 00:11:42 +0000 (00:11 +0000)
committerArtem Dergachev <artem.dergachev@gmail.com>
Thu, 28 Jun 2018 00:11:42 +0000 (00:11 +0000)
commit22d5fd239a3ecd5736f04fd60a38d06af17cad38
treecfeddd7918a967b7a094ede05c559064946183ba
parentf5fb3f3b81b10888ec0f219628d3df3f7782c65b
[analyzer] Re-enable lifetime extension for temporaries without destructors.

When an object's class provides no destructor, it's less important to
materialize that object properly because we don't have to model the destructor
correctly, so previously we skipped the support for these syntax patterns.

Additionally, fix support for construction contexts of "static temporaries"
(temporaries that are lifetime-extended by static references) because
it turned out that we only had tests for them without destructors, which caused
us to regress when we re-introduced the construction context for such
temporaries.

Differential Revision: https://reviews.llvm.org/D47658

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@335796 91177308-0d34-0410-b5e6-96231b3b80d8
lib/StaticAnalyzer/Core/ExprEngineCXX.cpp
test/Analysis/lifetime-extension.cpp
test/Analysis/temporaries-callback-order.cpp