Szelethus added inline comments.

================
Comment at: clang/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp:199
+  ///
+  /// This callback should be used to construct the checker's fields.
+  ///
----------------
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.


Repository:
  rC Clang

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