NoQ accepted this revision. NoQ added a comment. This revision is now accepted and ready to land.
This looks correct to me. Thanks a lot. This hack was surprisingly crude and i'm very glad that we now consistently use expressions in our Environment. ================ Comment at: clang/lib/StaticAnalyzer/Core/ProgramState.cpp:329 + +REGISTER_MAP_WITH_PROGRAMSTATE(ObjCForHasMoreIterations, ObjCForLctxPair, bool) + ---------------- I'd really prefer this to live in `ExprEngine.cpp`, like C++ constructor traits, and not be exposed in the `ProgramState` API, because as of now this is an implementation hack that other clients of `ProgramState` don't beed to know about. The actual non-placeholder implementation would i guess be interesting. The loop boils down to repeatedly sending certain messages to the collection. So i guess we could `evalCall` them in the checker that'll deal with modeling these collections. ================ Comment at: clang/lib/StaticAnalyzer/Core/SymbolManager.cpp:498 - // If no statement is provided, everything is this and parent contexts is live. + // If no statement is provided, everything in this and parent contexts are + // live. ---------------- IIRC "everything is" is the valid English. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D86736/new/ https://reviews.llvm.org/D86736 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits