[CFG] Provide construction contexts for temporaries in conditional operators.
authorArtem Dergachev <artem.dergachev@gmail.com>
Sat, 24 Feb 2018 03:10:15 +0000 (03:10 +0000)
committerArtem Dergachev <artem.dergachev@gmail.com>
Sat, 24 Feb 2018 03:10:15 +0000 (03:10 +0000)
commita6d91d5b3055626a8a7d0187b82f43a63596b157
tree95b166fb0883eeb7207301ed7cb7a0ea0f551892
parentafb87d83362c8fa8a995a14caf933d9c0c5baf46
[CFG] Provide construction contexts for temporaries in conditional operators.

When a lifetime-extended temporary is on a branch of a conditional operator,
materialization of such temporary occurs after the condition is resolved.

This change allows us to understand, by including the MaterializeTemporaryExpr
in the construction context, the target for temporary materialization in such
cases.

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

llvm-svn: 326019
clang/lib/Analysis/CFG.cpp
clang/test/Analysis/cfg-rich-constructors.cpp
clang/test/Analysis/temp-obj-dtors-cfg-output.cpp