NoQ added a comment. > I am totally lost here. What is wrong?
Looks like a bug. Every constructor and every function that returns an object by value should have a construction context. ================ 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: > baloghadamsoftware wrote: > > NoQ wrote: > > > 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. > > Oh yes, I see it now. But which one then? Maybe line 585? Or the whole > > `switch` expression? Sorry, I am not sure I fully understand this piece of > > code. > Now it returns `&Base{SymRegion{reg_$0<struct simple_derived_iterator * > this>},simple_iterator_base}`. Is it correct? I don't know. What code are you analyzing in this thread of discussion? 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