================ @@ -261,71 +262,77 @@ has everything if you need it. In the header `LLVM/ADT/STLExtras.h algorithms that operate on LLVM containers, such as `llvm::all_of <https://llvm.org/doxygen/STLExtras_8h.html#func-members>`_. -Clang is implemented on top of LLVM and introduces its own set of classes that you -will interact with while writing your check. When a check issues diagnostics and -fix-its, these are associated with locations in the source code. Source code locations, -source files, ranges of source locations and the `SourceManager -<https://clang.llvm.org/doxygen/classclang_1_1SourceManager.html>`_ class provide -the mechanisms for describing such locations. These and +Clang is implemented on top of LLVM and introduces its own set of classes that +you will interact with while writing your check. When a check issues +diagnostics and fix-its, these are associated with locations in the source +code. Source code locations, source files, ranges of source locations and the +`SourceManager <https://clang.llvm.org/doxygen/classclang_1_1SourceManager.html>`_ +class provide the mechanisms for describing such locations. These and other topics are described in the `"Clang" CFE Internals Manual -<https://clang.llvm.org/docs/InternalsManual.html>`_. Whereas the doxygen generated -documentation serves as a reference to the internals of Clang, this document serves -as a guide to other developers. Topics in that manual of interest to a check developer -are: +<https://clang.llvm.org/docs/InternalsManual.html>`_. Whereas the doxygen generated +documentation serves as a reference to the internals of Clang, this document +servesas a guide to other developers. Topics in that manual of interest to a +check developer are: - `The Clang "Basic" Library <https://clang.llvm.org/docs/InternalsManual.html#the-clang-basic-library>`_ for information about diagnostics, fix-it hints and source locations. - `The Lexer and Preprocessor Library <https://clang.llvm.org/docs/InternalsManual.html#the-lexer-and-preprocessor-library>`_ - for information about tokens, lexing (transforming characters into tokens) and the - preprocessor. + for information about tokens, lexing (transforming characters into tokens) + and the preprocessor. - `The AST Library <https://clang.llvm.org/docs/InternalsManual.html#the-ast-library>`_ - for information about how C++ source statements are represented as an abstract syntax - tree (AST). - -Most checks will interact with C++ source code via the AST. Some checks will interact -with the preprocessor. The input source file is lexed and preprocessed and then parsed -into the AST. Once the AST is fully constructed, the check is run by applying the check's -registered AST matchers against the AST and invoking the check with the set of matched -nodes from the AST. Monitoring the actions of the preprocessor is detached from the -AST construction, but a check can collect information during preprocessing for later -use by the check when nodes are matched by the AST. - -Every syntactic (and sometimes semantic) element of the C++ source code is represented by -different classes in the AST. You select the portions of the AST you're interested in -by composing AST matcher functions. You will want to study carefully the `AST Matcher -Reference <https://clang.llvm.org/docs/LibASTMatchersReference.html>`_ to understand -the relationship between the different matcher functions. + for information about how C++ source statements are represented as an + abstract syntax tree (AST). + +Most checks will interact with C++ source code via the AST. Some checks will ---------------- zeyi2 wrote:
Unfortunately it can't. But I will write a script to find similar cases and fix them soon. https://github.com/llvm/llvm-project/pull/168722 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
