a.sidorin added inline comments.
================ Comment at: lib/StaticAnalyzer/Checkers/IteratorChecker.cpp:1256 + if (Cond(Reg.second)) { + State = setIteratorPosition(State, Reg.first, Proc(Reg.second)); + } ---------------- baloghadamsoftware wrote: > a.sidorin wrote: > > Updating ProgramState is usually considered as an expensive operation. > > Instead, we can update maps (RegionMap and SymbolMap) and then, if they > > have any updates, create a state containing these maps. What do you think? > How to update ImmutableMap? You can create a new Immutable map from existing with factory methods: ``` auto Factory = State->get_context<IteratorRegionMap>(); auto Map = State->get<RegionMap>(); Map = Factory.add(Map, Key, Value); Map = Factory.add(Map, Key2, Value2); State = State->set<IteratorRegionMap>(Map); ``` https://reviews.llvm.org/D32747 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits