diff --git a/clang/www/analyzer/checker_dev_manual.html b/clang/www/analyzer/checker_dev_manual.html
--- a/clang/www/analyzer/checker_dev_manual.html
+++ b/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 Hacking on Clang
and LLVM Programmer's Manual
-for developer guidelines and send your questions and proposals to
-cfe-dev mailing list.
+for developer guidelines and post your questions and proposals to the
+ Static Analyzer subcategory at
+the official LLVM Discourse server.
@@ -245,7 +246,7 @@
solver to model symbolic execution.
- Consult the Bugzilla database
+ href="https://github.com/llvm/llvm-project/labels/clang%3Astatic%20analyzer">GitHub Issues
to get some ideas for new checkers and consider starting with improving/fixing
bugs in the existing checkers.
@@ -381,17 +382,17 @@
state types declared with this macro are get, set, and
remove.
REGISTER_LIST_WITH_PROGRAMSTATE:
+href="https://clang.llvm.org/doxygen/ProgramStateTrait_8h.html#aa27656fa0ce65b0d9ba12eb3c02e8be9">REGISTER_LIST_WITH_PROGRAMSTATE:
Used when the state information is a list of values. The methods available for
state types declared with this macro are add, get,
remove, and contains.
REGISTER_SET_WITH_PROGRAMSTATE:
+href="https://clang.llvm.org/doxygen/ProgramStateTrait_8h.html#ad90f9387b94b344eaaf499afec05f4d1">REGISTER_SET_WITH_PROGRAMSTATE:
Used when the state information is a set of values. The methods available for
state types declared with this macro are add, get,
remove, and contains.
REGISTER_MAP_WITH_PROGRAMSTATE:
+href="https://clang.llvm.org/doxygen/ProgramStateTrait_8h.html#a6d1893bb8c18543337b6c363c1319fcf">REGISTER_MAP_WITH_PROGRAMSTATE:
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 add,
set, get, remove, and contains.
@@ -447,7 +448,7 @@
created would be equivalent to writing the declaration:
-typedef llvm::ImmutableMap<SymbolRef, int> ExampleDataTypeTy;
+using ExampleDataTypeTy = llvm::ImmutableMap<SymbolRef, int>;
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 BugReport constructor
without additional modification. This ExplodedNode will be the one
returned by the most recent call to CheckerContext::addTransition.
+href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1CheckerContext.html#a9717efea3fbc71523984160ae7ae9d41">CheckerContext::addTransition.
If no transition has been performed during the current callback, the checker should call CheckerContext::addTransition()
+href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1CheckerContext.html#a9717efea3fbc71523984160ae7ae9d41">CheckerContext::addTransition()
and use the returned node for bug reporting.
If analysis can not continue, then the current state should be transitioned
into a so-called sink node, a node from which no further analysis will be
performed. This is done by calling the
+href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1CheckerContext.html#a249245cdf2384738921f134c8d7d909a">
CheckerContext::generateSink function; this function is the same as the
addTransition function, but marks the state as a sink node. Like
addTransition, this returns an ExplodedNode with the updated
@@ -516,7 +517,7 @@
After a BugReport is created, it should be passed to the analyzer core
-by calling CheckerContext::emitReport.
+by calling CheckerContext::emitReport.
AST Visitors
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.:
- $ clang -cc1 -analyze -analyzer-checker=core test.cc -analyze-function=foo(int)
+ $ clang -cc1 -analyze -analyzer-checker=core test.cc -analyze-function='foo(int)'
The fully qualified name can be found from the
@@ -786,14 +787,14 @@
Static Analyzer:
-- Xu, Zhongxing &
+
- Xu, Zhongxing &
Kremenek, Ted & Zhang, Jian. (2010). A Memory Model for Static Analysis of C
Programs.
-
The Clang Static Analyzer README
--
+
-
Documentation for how the Store works
--
+
-
Documentation about inlining
- The "Building a Checker in 24 hours" presentation given at the November 2012 LLVM Developer's
@@ -812,11 +813,15 @@
have been linked throughout this page. Also of use is the
LLVM doxygen, when dealing with classes
from LLVM.
-- The
-cfe-dev mailing list. This is the primary mailing list used for
-discussion of Clang development (including static code analysis). The
-archive also contains
-a lot of information.
+-
+ The Clang Frontent Discourse site.
+ This is the primary forum discussing ideas and posting questions about Clang development.
+ For posting Clang Static Analyzer specific questions, please visit the
+ Static Analyzer subcategory
+ of the same site. In the past, Static Analyzer discussions took place at the
+ cfe-dev mailing list, which is now
+ archived and superseeded by the mentioned Discourse site.
+