[PATCH] Proposal on how to fix temporary dtors.
Manuel Klimek
klimek at google.com
Wed Aug 6 05:55:02 PDT 2014
Thx! Landed as r214962.
================
Comment at: lib/Analysis/CFG.cpp:3583
@@ -3512,4 +3582,3 @@
if (Stmt *Child = *I)
- if (CFGBlock *R = VisitForTemporaryDtors(Child))
- B = R;
+ if (CFGBlock *R = VisitForTemporaryDtors(Child, false, Context)) B = R;
}
----------------
Jordan Rose wrote:
> Lost a newline here.
Done.
================
Comment at: lib/StaticAnalyzer/Core/ExprEngine.cpp:681-686
@@ -663,1 +680,8 @@
QualType varType = D.getBindTemporaryExpr()->getSubExpr()->getType();
+ for (ExplodedNode *Node : CleanDtorState) {
+ // FIXME: Inlining of temporary destructors is not supported yet anyway, so
+ // we just put a NULL region for now. This will need to be changed later.
+ VisitCXXDestructor(varType, nullptr, D.getBindTemporaryExpr(),
+ /*IsBase=*/false, Node, Dst);
+ }
+}
----------------
Jordan Rose wrote:
> I'm not sure you're supposed to reuse `Dst` with multiple builders. However, you know there's only one node in `CleanDtorState`, so you should be able to just skip the loop.
Done.
http://reviews.llvm.org/D3627
More information about the cfe-commits
mailing list