[clang] 5e0be95 - [analyzer][docs][NFC] Fix some broken links and some cosmetic changes
Balazs Benics via cfe-commits
cfe-commits at lists.llvm.org
Wed Feb 9 01:22:44 PST 2022
Author: Balazs Benics
Date: 2022-02-09T10:22:28+01:00
New Revision: 5e0be95fce2640bda83dd02c1dc85d3e0836fa1a
URL: https://github.com/llvm/llvm-project/commit/5e0be95fce2640bda83dd02c1dc85d3e0836fa1a
DIFF: https://github.com/llvm/llvm-project/commit/5e0be95fce2640bda83dd02c1dc85d3e0836fa1a.diff
LOG: [analyzer][docs][NFC] Fix some broken links and some cosmetic changes
- We should report bugs to the GitHub Issues
- We should advocate using Discourse instead of the superseded cfe-dev
mailing list.
There are a couple of other cosmetic changes such as preferring `using`
instead of `typedef` and quoting the `-analyze-function` parameter's
payload for escaping the braces.
Thanks @loic-joly-sonarsource for reporting this on Discord!
Reviewed By: NoQ, Szelethus
Differential Revision: https://reviews.llvm.org/D119245
Added:
Modified:
clang/www/analyzer/checker_dev_manual.html
Removed:
################################################################################
diff --git a/clang/www/analyzer/checker_dev_manual.html b/clang/www/analyzer/checker_dev_manual.html
index c5c9ad1836234..7b63efefe11a9 100644
--- a/clang/www/analyzer/checker_dev_manual.html
+++ b/clang/www/analyzer/checker_dev_manual.html
@@ -27,8 +27,9 @@ <h1>Checker Developer Manual</h1>
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 @@ <h2 id=idea>Idea for a Checker</h2>
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 @@ <h2 id=extendingstates>Custom Program States</h2>
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 @@ <h2 id=extendingstates>Custom Program States</h2>
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 @@ <h2 id=bugs>Bug Reports</h2>
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 @@ <h2 id=bugs>Bug Reports</h2>
<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 @@ <h3 id=narrowing>Narrowing Down the Problem</h3>
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 @@ <h2 id=additioninformation>Additional Sources of Information</h2>
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 @@ <h2 id=additioninformation>Additional Sources of Information</h2>
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>
More information about the cfe-commits
mailing list