This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG5e0be95fce26: [analyzer][docs][NFC] Fix some broken links and some cosmetic changes (authored by steakhal). Herald added a project: clang. Herald added a subscriber: cfe-commits.
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D119245/new/ https://reviews.llvm.org/D119245 Files: clang/www/analyzer/checker_dev_manual.html
Index: clang/www/analyzer/checker_dev_manual.html =================================================================== --- clang/www/analyzer/checker_dev_manual.html +++ clang/www/analyzer/checker_dev_manual.html @@ -27,8 +27,9 @@ and refer to this page for additional information on writing a checker. The static analyzer is a part of the Clang project, so consult <a href="https://clang.llvm.org/hacking.html">Hacking on Clang</a> and <a href="https://llvm.org/docs/ProgrammersManual.html">LLVM Programmer's Manual</a> -for developer guidelines and send your questions and proposals to -<a href=https://lists.llvm.org/mailman/listinfo/cfe-dev>cfe-dev mailing list</a>. +for developer guidelines and post your questions and proposals to the +<a href="https://discourse.llvm.org/c/clang/static-analyzer/"> Static Analyzer</a> subcategory at +the official <a href="https://discourse.llvm.org/"> LLVM Discourse server</a>. </p> <ul> @@ -245,7 +246,7 @@ solver to model symbolic execution.</li> <li>Consult the <a - href="https://bugs.llvm.org/buglist.cgi?query_format=advanced&bug_status=NEW&bug_status=REOPENED&version=trunk&component=Static%20Analyzer&product=clang">Bugzilla database</a> + href="https://github.com/llvm/llvm-project/labels/clang%3Astatic%20analyzer">GitHub Issues</a> to get some ideas for new checkers and consider starting with improving/fixing bugs in the existing checkers.</li> </ul> @@ -381,17 +382,17 @@ state types declared with this macro are <tt>get</tt>, <tt>set</tt>, and <tt>remove</tt>. <li><a -href="https://clang.llvm.org/doxygen/CheckerContext_8h.html#aa27656fa0ce65b0d9ba12eb3c02e8be9">REGISTER_LIST_WITH_PROGRAMSTATE</a>: +href="https://clang.llvm.org/doxygen/ProgramStateTrait_8h.html#aa27656fa0ce65b0d9ba12eb3c02e8be9">REGISTER_LIST_WITH_PROGRAMSTATE</a>: Used when the state information is a list of values. The methods available for state types declared with this macro are <tt>add</tt>, <tt>get</tt>, <tt>remove</tt>, and <tt>contains</tt>. <li><a -href="https://clang.llvm.org/doxygen/CheckerContext_8h.html#ad90f9387b94b344eaaf499afec05f4d1">REGISTER_SET_WITH_PROGRAMSTATE</a>: +href="https://clang.llvm.org/doxygen/ProgramStateTrait_8h.html#ad90f9387b94b344eaaf499afec05f4d1">REGISTER_SET_WITH_PROGRAMSTATE</a>: Used when the state information is a set of values. The methods available for state types declared with this macro are <tt>add</tt>, <tt>get</tt>, <tt>remove</tt>, and <tt>contains</tt>. <li><a -href="https://clang.llvm.org/doxygen/CheckerContext_8h.html#a6d1893bb8c18543337b6c363c1319fcf">REGISTER_MAP_WITH_PROGRAMSTATE</a>: +href="https://clang.llvm.org/doxygen/ProgramStateTrait_8h.html#a6d1893bb8c18543337b6c363c1319fcf">REGISTER_MAP_WITH_PROGRAMSTATE</a>: Used when the state information is a map from a key to a value. The methods available for state types declared with this macro are <tt>add</tt>, <tt>set</tt>, <tt>get</tt>, <tt>remove</tt>, and <tt>contains</tt>. @@ -447,7 +448,7 @@ created would be equivalent to writing the declaration: <pre class="code_example"> -typedef llvm::ImmutableMap<SymbolRef, int> ExampleDataTypeTy; +using ExampleDataTypeTy = llvm::ImmutableMap<SymbolRef, int>; </pre> <p>These macros will cover a majority of use cases; however, they still have a @@ -500,15 +501,15 @@ generated by the checker can be passed to the <tt>BugReport</tt> constructor without additional modification. This <tt>ExplodedNode</tt> will be the one returned by the most recent call to <a -href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1CheckerContext.html#a264f48d97809707049689c37aa35af78">CheckerContext::addTransition</a>. +href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1CheckerContext.html#a9717efea3fbc71523984160ae7ae9d41">CheckerContext::addTransition</a>. If no transition has been performed during the current callback, the checker should call <a -href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1CheckerContext.html#a264f48d97809707049689c37aa35af78">CheckerContext::addTransition()</a> +href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1CheckerContext.html#a9717efea3fbc71523984160ae7ae9d41">CheckerContext::addTransition()</a> and use the returned node for bug reporting. <p>If analysis can not continue, then the current state should be transitioned into a so-called <i>sink node</i>, a node from which no further analysis will be performed. This is done by calling the <a -href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1CheckerContext.html#adeea33a5a2bed190210c4a2bb807a6f0"> +href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1CheckerContext.html#a249245cdf2384738921f134c8d7d909a"> CheckerContext::generateSink</a> function; this function is the same as the <tt>addTransition</tt> function, but marks the state as a sink node. Like <tt>addTransition</tt>, this returns an <tt>ExplodedNode</tt> with the updated @@ -516,7 +517,7 @@ <p> After a <tt>BugReport</tt> is created, it should be passed to the analyzer core -by calling <a href = "https://clang.llvm.org/doxygen/classclang_1_1ento_1_1CheckerContext.html#ae7738af2cbfd1d713edec33d3203dff5">CheckerContext::emitReport</a>. +by calling <a href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1CheckerContext.html#af50a9f46f6ea787a2a8e4ad7f86576e7">CheckerContext::emitReport</a>. <h2 id=ast>AST Visitors</h2> Some checks might not require path-sensitivity to be effective. Simple AST walk @@ -592,7 +593,7 @@ C++ functions and methods, Objective-C methods and blocks, e.g.: <pre class="code"> - $ <b>clang -cc1 -analyze -analyzer-checker=core test.cc -analyze-function=foo(int)</b> + $ <b>clang -cc1 -analyze -analyzer-checker=core test.cc -analyze-function='foo(int)'</b> </pre> The fully qualified name can be found from the @@ -786,14 +787,14 @@ Static Analyzer: <ul> -<li><a href="http://lcs.ios.ac.cn/~xuzb/canalyze/memmodel.pdf">Xu, Zhongxing & +<li><a href="https://lcs.ios.ac.cn/~xzx/memmodel.pdf">Xu, Zhongxing & Kremenek, Ted & Zhang, Jian. (2010). A Memory Model for Static Analysis of C Programs.</a></li> <li><a href="https://github.com/llvm/llvm-project/blob/main/clang/lib/StaticAnalyzer/README.txt"> The Clang Static Analyzer README</a></li> -<li><a href="https://github.com/llvm/llvm-project/blob/main/clang/docs/analyzer/RegionStore.txt"> +<li><a href="https://github.com/llvm/llvm-project/blob/main/clang/docs/analyzer/developer-docs/RegionStore.rst"> Documentation for how the Store works</a></li> -<li><a href="https://github.com/llvm/llvm-project/blob/main/clang/docs/analyzer/IPA.txt"> +<li><a href="https://github.com/llvm/llvm-project/blob/main/clang/docs/analyzer/developer-docs/IPA.rst"> Documentation about inlining</a></li> <li> The "Building a Checker in 24 hours" presentation given at the <a href="https://llvm.org/devmtg/2012-11">November 2012 LLVM Developer's @@ -812,11 +813,15 @@ have been linked throughout this page. Also of use is the <a href="https://llvm.org/doxygen">LLVM doxygen</a>, when dealing with classes from LLVM.</li> -<li> The <a href="https://lists.llvm.org/mailman/listinfo/cfe-dev"> -cfe-dev mailing list</a>. This is the primary mailing list used for -discussion of Clang development (including static code analysis). The -<a href="https://lists.llvm.org/pipermail/cfe-dev">archive</a> also contains -a lot of information.</li> +<li> + The <a href="https://discourse.llvm.org/c/clang/"> Clang Frontent Discourse site</a>. + This is the primary forum discussing ideas and posting questions about Clang development. + For posting Clang Static Analyzer specific questions, please visit the + <a href="https://discourse.llvm.org/c/clang/static-analyzer/"> Static Analyzer subcategory</a> + of the same site. In the past, Static Analyzer discussions took place at the + <a href="https://lists.llvm.org/pipermail/cfe-dev/"> cfe-dev</a> mailing list, which is now + archived and superseeded by the mentioned Discourse site. +</li> </ul> </div>
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits