NoQ added inline comments.

================
Comment at: include/clang/StaticAnalyzer/Core/Checker.h:325
+                      const CallEvent *Call,
+                      const LocationContext *LCtx) {
+    return ((const CHECKER *) checker)->checkRegionChanges(state, invalidated,
----------------
zaks.anna wrote:
> k-wisniewski wrote:
> > NoQ wrote:
> > > zaks.anna wrote:
> > > > LocationContext can be obtained by calling 
> > > > CallEvent::getLocationContext(). I do not think that adding another 
> > > > parameter here buys us much. Am I missing something?
> > > CallEvent* is optional here - it's there only for invalidations through 
> > > calls.
> > How about the situation when this callback is triggered by something other 
> > than a call, like variable assignment? I've tried using that location 
> > context and had lots of segfaults as in such cases it appeared to be null. 
> > Do you have some info that it should be non-null in such a case?
> Ok, makes sense. Have you looked into providing a checker context there? How 
> much more difficult would that be? If that is too difficult, adding 
> LocationContext is good as well.
> 
> If Call is optional and LocationContext is not, should the Call parameter be 
> last.
If we add a CheckerContext, then we may end up calling callbacks that split 
states within callbacks that split states, and that'd be quite a mess to 
support.

Right now a checker may trigger `checkRegionChanges()` within its callback by 
manipulating the Store, which already leads to callbacks within callbacks, but 
that's bearable as long as you can't add transitions within the inner callbacks.


https://reviews.llvm.org/D26588



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

Reply via email to