Charusso marked 3 inline comments as done.
Charusso added a comment.

In D69745#1732348 <https://reviews.llvm.org/D69745#1732348>, @Szelethus wrote:

> YES PLEASE. Debug checkers that only dump from `check::EndAnalysis` won't 
> rely on the analysis not actually crashing. Which is ironically exactly when 
> we want to use them.


Thanks for the idea! I am not that cool with debug checkers and I think you are 
the first user who made a creative decision how to use this. My use case is the 
`Preprocessor` only if I do not touch the checker-registry based construction.



================
Comment at: clang/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp:199
+  ///
+  /// This callback should be used to construct the checker's fields.
+  ///
----------------
Szelethus wrote:
> Szelethus wrote:
> > Hmmm, what use case do you have in mind? Do we actually want this to 
> > happen? By the time checkers are constructed, the AST is already built, 
> > alongside all the other data structures that will be inspected by the 
> > analyzer. Since checkers are constructed once for each clang invocation 
> > (not for every `BeginAnalysis` -- `EndAnalysis` cycle), I would imagine 
> > that the checker registry functions are more appropriate for such 
> > initializations.
> > 
> > I'm only aware of one non-debug checker that uses `EndAnalysis` (maybe 
> > `RetailCount`?), that clears some sort of a locally stored map that it 
> > shouldn't really have anyways (since checkers are supposed to be 
> > stateless), and I struggle to think of a realistic, supported use case for 
> > this callback other than debug checkers.
> Turns out `deadcode.UnreachableCode` uses `EndAnalysis` quite cleverly as 
> well.
Yes, good point. It is made for the `Preprocessor` mainly which is very 
path-sensitive, but that is not that good idea to construct e.g. the `BugType` 
multiple times. So that, I do not want to restrict creativity and I have 
removed that line.


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

https://reviews.llvm.org/D69745



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

Reply via email to