[PATCH] D62525: [Analyzer] Add new visitor to the iterator checkers
Balogh, Ádám via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Jul 18 02:19:31 PDT 2019
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
More information about the cfe-commits
mailing list