summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/python_api/class_members
diff options
context:
space:
mode:
authorArtem Dergachev <artem.dergachev@gmail.com>2018-02-08 22:58:15 +0000
committerArtem Dergachev <artem.dergachev@gmail.com>2018-02-08 22:58:15 +0000
commit41ffb30716e94f575a38647dac02c80b71f9bff1 (patch)
tree3e116aa9e1ddb7a068a1abd693416de9ae815fe1 /lldb/packages/Python/lldbsuite/test/python_api/class_members
parent9c2f3c48522b669ef1010c424993946ab3e162d9 (diff)
downloadbcm5719-llvm-41ffb30716e94f575a38647dac02c80b71f9bff1.tar.gz
bcm5719-llvm-41ffb30716e94f575a38647dac02c80b71f9bff1.zip
[CFG] Add extra context to C++ constructor statement elements.
This patch adds a new CFGStmt sub-class, CFGConstructor, which replaces the regular CFGStmt with CXXConstructExpr in it whenever the CFG has additional information to provide regarding what sort of object is being constructed. It is useful for figuring out what memory is initialized in client of the CFG such as the Static Analyzer, which do not operate by recursive AST traversal, but instead rely on the CFG to provide all the information when they need it. Otherwise, the statement that triggers the construction and defines what memory is being initialized would normally occur after the construct-expression, and the client would need to peek to the next CFG element or use statement parent map to understand the necessary facts about the construct-expression. As a proof of concept, CFGConstructors are added for new-expressions and the respective test cases are provided to demonstrate how it works. For now, the only additional data contained in the CFGConstructor element is the "trigger statement", such as new-expression, which is the parent of the constructor. It will be significantly expanded in later commits. The additional data is organized as an auxiliary structure - the "construction context", which is allocated separately from the CFGElement. Differential Revision: https://reviews.llvm.org/D42672 llvm-svn: 324668
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/class_members')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud