diff options
| author | Manuel Klimek <klimek@google.com> | 2014-08-06 12:45:51 +0000 |
|---|---|---|
| committer | Manuel Klimek <klimek@google.com> | 2014-08-06 12:45:51 +0000 |
| commit | d9b4ad6e1f0a174fa799953022adff1c970aedb9 (patch) | |
| tree | 39ed1a1f84ead2fa23449e716c0fd12cb38cb78d /llvm/lib/Target | |
| parent | b3d331d18dbfdfb356b234077bc0bf14a0fdea14 (diff) | |
| download | bcm5719-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

