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.

@@ -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: