summaryrefslogtreecommitdiffstats
path: root/clang/lib/StaticAnalyzer/Core/RangedConstraintManager.h
diff options
context:
space:
mode:
authorArtem Dergachev <artem.dergachev@gmail.com>2018-03-22 21:37:39 +0000
committerArtem Dergachev <artem.dergachev@gmail.com>2018-03-22 21:37:39 +0000
commit317291e34031d61f0ac6a91647df3ac23d82f2a0 (patch)
tree4d5a4a93b135aef048628d2a80de82074849b97d /clang/lib/StaticAnalyzer/Core/RangedConstraintManager.h
parentd2e77472d1a3c5637c0056eaf2466e3512dc08ec (diff)
downloadbcm5719-llvm-317291e34031d61f0ac6a91647df3ac23d82f2a0.tar.gz
bcm5719-llvm-317291e34031d61f0ac6a91647df3ac23d82f2a0.zip
[CFG] [analyzer] Add C++17-specific variable and return construction contexts.
In C++17 copy elision is mandatory for variable and return value constructors (as long as it doesn't involve type conversion) which results in AST that does not contain elidable constructors in their usual places. In order to provide construction contexts in this scenario we need to cover more AST patterns. This patch makes the CFG prepared for these scenarios by: - Fork VariableConstructionContext and ReturnedValueConstructionContext into two different sub-classes (each) one of which indicates the C++17 case and contains a reference to an extra CXXBindTemporaryExpr. - Allow CFGCXXRecordTypedCall element to accept VariableConstructionContext and ReturnedValueConstructionContext as its context. Differential Revision: https://reviews.llvm.org/D44597 llvm-svn: 328248
Diffstat (limited to 'clang/lib/StaticAnalyzer/Core/RangedConstraintManager.h')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud