NoQ added a comment.

In D77229#1966888 <https://reviews.llvm.org/D77229#1966888>, 
@baloghadamsoftware wrote:

> Not so strange, of course, they are destructed before the `postCall()` as 
> they should be, but the question still remains: how to keep them alive for 
> post-checking the call, but not forever.


Nope, temporaries are destroyed at the end of the full-expression, which is 
much later than `PostCall`.

What code are you debugging?



================
Comment at: clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp:231-235
+        if (dyn_cast_or_null<InitListExpr>(LCtx->getParentMap().getParent(E))) 
{
+          MemRegionManager &MRMgr = getSValBuilder().getRegionManager();
+          return std::make_pair(
+              State, loc::MemRegionVal(MRMgr.getCXXTempObjectRegion(E, LCtx)));
+        }
----------------
baloghadamsoftware wrote:
> Did you mean this piece of code? It returns `&temp_object{struct 
> simple_iterator_base, S44016}`. Is this correct? If so, I will factor out 
> this code and put it into a common function to be used by both this function 
> and the original one.
No, this one's for members, we've been talking about base classes.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D77229/new/

https://reviews.llvm.org/D77229



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to