summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorManuel Klimek <klimek@google.com>2014-08-06 12:45:51 +0000
committerManuel Klimek <klimek@google.com>2014-08-06 12:45:51 +0000
commitd9b4ad6e1f0a174fa799953022adff1c970aedb9 (patch)
tree39ed1a1f84ead2fa23449e716c0fd12cb38cb78d /llvm/lib/Target
parentb3d331d18dbfdfb356b234077bc0bf14a0fdea14 (diff)
downloadbcm5719-llvm-d9b4ad6e1f0a174fa799953022adff1c970aedb9.tar.gz
bcm5719-llvm-d9b4ad6e1f0a174fa799953022adff1c970aedb9.zip
Fix modelling of non-lifetime-extended temporary destructors in the analyzer.
1. Changes to the CFG: When creating the CFG for temporary destructors, we create a structure that mirrors the branch structure of the conditionally executed temporary constructors in a full expression. The branches we create use a CXXBindTemporaryExpr as terminator which corresponds to the temporary constructor which must have been executed to enter the destruction branch. 2. Changes to the Analyzer: When we visit a CXXBindTemporaryExpr we mark the CXXBindTemporaryExpr as executed in the state; when we reach a branch that contains the corresponding CXXBindTemporaryExpr as terminator, we branch out depending on whether the corresponding CXXBindTemporaryExpr was marked as executed. llvm-svn: 214962
Diffstat (limited to 'llvm/lib/Target')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud