baloghadamsoftware marked an inline comment as done.
baloghadamsoftware added inline comments.


================
Comment at: lib/StaticAnalyzer/Checkers/IteratorChecker.cpp:1277-1292
+            State = setContainerData(State, ContReg, CData->newEnd(OldEndSym));
           } else {
             State = setContainerData(State, ContReg,
-                                     ContainerData::fromEnd(NewEndSym));
+                                     ContainerData::fromEnd(OldEndSym));
           }
+          // Then generate and assign a new "end" symbol for the old container.
+          auto NewEndSym =
----------------
Szelethus wrote:
> I'm confused, are these changes related to this patch? It doesn't seem to be.
Yes, they are. Since we want to track the iterator positions upwards along the 
bugpath as far a possible I had to reverse one of my decisions. When I first 
decided it was really like a coin thrown up, but now it turned out I took the 
wrong choice considering the visitor. The change is that upon move assignment 
of a container the iterators are transferred to the new container, except the 
past-the-end iterator.  However we also have iterator positions relative to the 
past-the-end iterator (thus using the same symbol) which must be transferred. 
So I had to separate them from the past-the-end positions by generating a new 
end symbol. I originally used this new symbol for the positions to be 
transferred and kept the old symbol for the past-the-end positions. However 
this makes tracking of the non past-the-end positions very difficult so I 
reversed it and now I transfer the old symbol and use the new for the 
past-the-end positions.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D62525/new/

https://reviews.llvm.org/D62525



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to