[PATCH] D47417: [analyzer] Add missing state transition in IteratorChecker
Artem Dergachev via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Sun May 27 23:10:50 PDT 2018
NoQ added a comment.
Nice catch!
================
Comment at: lib/StaticAnalyzer/Checkers/IteratorChecker.cpp:399
+
+ C.addTransition(State);
}
----------------
MTC wrote:
> I have two questions may need @NoQ or @xazax.hun who is more familiar with the analyzer engine help to answer.
>
> - `State` may not change at all, do we need a check here like [[ https://github.com/llvm-mirror/clang/blob/master/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp#L227 | if (state != originalState) ]]
> - A more basic problem is that do we need `originalState = State` trick. It seems that `addTransitionImpl()` has a check about same state transition, see [[ https://github.com/llvm-mirror/clang/blob/master/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h#L339 | addTransitionImp() ]].
>
> Thanks in advance!
>
>
>
> It seems that `addTransitionImpl()` has a check about same state transition, see `addTransitionImp()`.
Yep, you pretty much answered your question. The check in the checker code is unnecessary.
Repository:
rC Clang
https://reviews.llvm.org/D47417
More information about the cfe-commits
mailing list