martong added a comment.

In D73898#1864066 <https://reviews.llvm.org/D73898#1864066>, @martong wrote:

> In D73898#1863710 <https://reviews.llvm.org/D73898#1863710>, @Szelethus wrote:
>
> > I wouldn't like to see reports emitted by a checker that resides in 
> > `apiModeling`. Could we create a new one? Some checkers, like the 
> > `IteratorChecker`, `MallocChecker` and `CStringChecker` implement a variety 
> > of user-facing checkers within the same class, that is also an option, if 
> > creating a new checker class is too much of a hassle.
>
>
> ... And actually it makes sense to apply the argument constraints only if we 
> know for sure that they are not violated. ...


What I mean by that is that we must do over-approximation if the argument is 
symbolic. I.e. we presume that the constraints do hold otherwise the program 
would be ill-formed and there is no point to continue the analysis on this 
path. It is very similar to what we do in case of the DivZero or the NullDeref 
Checkers: if there is no violation (no warning) and the variable is symbolic 
then we constrain the value by the condition. E.g. in DivZero::checkPreStmt we 
have:

  // If we get here, then the denom should not be zero. We abandon the implicit
  // zero denom case for now.
  C.addTransition(stateNotZero);

Strictly speaking, these transitions should be part of the modeling then in 
this sense (and they should be in PostStmt?). Still they are not separated into 
a different checker.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D73898



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

Reply via email to