[PATCH] D62619: [analyzer][IDF] Add a control dependency calculator + a new debug checker

Artem Dergachev via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Jul 2 10:56:48 PDT 2019


NoQ added a comment.

Static Analyzer bits look great to me as well!



================
Comment at: clang/include/clang/Analysis/Analyses/Dominators.h:257
+  // Dumps immediate control dependencies for each block.
+  void dump() {
+    CFG *cfg = PostDomTree.getCFG();
----------------
kuhar wrote:
> kuhar wrote:
> > Can `dump` be const? 
> In LLVM, `dump`s are usually annotated with the `LLVM_DUMP_METHOD` attribute and not compiled in release builds. Is the convention different in the static analyzer?
`LLVM_DUMP_METHOD` is great. Hiding dump methods under `#ifndef NDEBUG` is something i've seen very rarely. It's fairly annoying to me that exploded graph dumps are unavailable in release builds, but apart from that i don't have any immediate opinion, so this sounds like a global LLVM policy that we're historically not paying much attention to, but i don't mind complying.


================
Comment at: clang/lib/StaticAnalyzer/Checkers/DebugCheckers.cpp:90
+    if (AnalysisDeclContext *AC = mgr.getAnalysisDeclContext(D)) {
+      ControlDependencyCalculator dom(AC->getCFG());
+      dom.dump();
----------------
CaPiTaLiZe VaRiAbLeS.

(*doesn't really care*)


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

https://reviews.llvm.org/D62619





More information about the cfe-commits mailing list