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