]> granicus.if.org Git - clang/commit
[CFG] [analyzer] Don't treat argument constructors as temporary constructors.
authorArtem Dergachev <artem.dergachev@gmail.com>
Thu, 19 Apr 2018 23:09:22 +0000 (23:09 +0000)
committerArtem Dergachev <artem.dergachev@gmail.com>
Thu, 19 Apr 2018 23:09:22 +0000 (23:09 +0000)
commita87e09cd75f5c55f858f7089d2f8eac8a007de6d
treedc0d0157989538bb6274e3572659fc0e4c7f0260
parent0a0fb94463d3bb0c701d9e9904739a0c2d9f5aca
[CFG] [analyzer] Don't treat argument constructors as temporary constructors.

Function argument constructors (that are used for passing objects into functions
by value) are completely unlike temporary object constructors, but we were
treating them as such because they are also wrapped into a CXXBindTemporaryExpr.

This patch adds a partial construction context layer for call argument values,
but doesn't proceed to transform it into an actual construction context yet.
This is tells the clients that we aren't supporting these constructors yet.

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@330377 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Analysis/CFG.cpp
lib/Analysis/ConstructionContext.cpp
test/Analysis/cfg-rich-constructors.cpp