]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - docs/ClangCheck.rst
Vendor import of clang release_40 branch r292951:
[FreeBSD/FreeBSD.git] / docs / ClangCheck.rst
1 ==========
2 ClangCheck
3 ==========
4
5 `ClangCheck` is a small wrapper around :doc:`LibTooling` which can be used to
6 do basic error checking and AST dumping.
7
8 .. code-block:: console
9
10   $ cat <<EOF > snippet.cc
11   > void f() {
12   >   int a = 0
13   > }
14   > EOF
15   $ ~/clang/build/bin/clang-check snippet.cc -ast-dump --
16   Processing: /Users/danieljasper/clang/llvm/tools/clang/docs/snippet.cc.
17   /Users/danieljasper/clang/llvm/tools/clang/docs/snippet.cc:2:12: error: expected ';' at end of
18         declaration
19     int a = 0
20              ^
21              ;
22   (TranslationUnitDecl 0x7ff3a3029ed0 <<invalid sloc>>
23     (TypedefDecl 0x7ff3a302a410 <<invalid sloc>> __int128_t '__int128')
24     (TypedefDecl 0x7ff3a302a470 <<invalid sloc>> __uint128_t 'unsigned __int128')
25     (TypedefDecl 0x7ff3a302a830 <<invalid sloc>> __builtin_va_list '__va_list_tag [1]')
26     (FunctionDecl 0x7ff3a302a8d0 </Users/danieljasper/clang/llvm/tools/clang/docs/snippet.cc:1:1, line:3:1> f 'void (void)'
27       (CompoundStmt 0x7ff3a302aa10 <line:1:10, line:3:1>
28         (DeclStmt 0x7ff3a302a9f8 <line:2:3, line:3:1>
29           (VarDecl 0x7ff3a302a980 <line:2:3, col:11> a 'int'
30             (IntegerLiteral 0x7ff3a302a9d8 <col:11> 'int' 0))))))
31   1 error generated.
32   Error while processing snippet.cc.
33
34 The '--' at the end is important as it prevents :program:`clang-check` from
35 searching for a compilation database. For more information on how to setup and
36 use :program:`clang-check` in a project, see :doc:`HowToSetupToolingForLLVM`.