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

Reply via email to