File: ClangCheck.rst

package info (click to toggle)
llvm-toolchain-15 1%3A15.0.6-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,554,644 kB
  • sloc: cpp: 5,922,452; ansic: 1,012,136; asm: 674,362; python: 191,568; objc: 73,855; f90: 42,327; lisp: 31,913; pascal: 11,973; javascript: 10,144; sh: 9,421; perl: 7,447; ml: 5,527; awk: 3,523; makefile: 2,520; xml: 885; cs: 573; fortran: 567
file content (36 lines) | stat: -rw-r--r-- 1,495 bytes parent folder | download | duplicates (29)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
==========
ClangCheck
==========

`ClangCheck` is a small wrapper around :doc:`LibTooling` which can be used to
do basic error checking and AST dumping.

.. code-block:: console

  $ cat <<EOF > snippet.cc
  > void f() {
  >   int a = 0
  > }
  > EOF
  $ ~/clang/build/bin/clang-check snippet.cc -ast-dump --
  Processing: /Users/danieljasper/clang/llvm/tools/clang/docs/snippet.cc.
  /Users/danieljasper/clang/llvm/tools/clang/docs/snippet.cc:2:12: error: expected ';' at end of
        declaration
    int a = 0
             ^
             ;
  (TranslationUnitDecl 0x7ff3a3029ed0 <<invalid sloc>>
    (TypedefDecl 0x7ff3a302a410 <<invalid sloc>> __int128_t '__int128')
    (TypedefDecl 0x7ff3a302a470 <<invalid sloc>> __uint128_t 'unsigned __int128')
    (TypedefDecl 0x7ff3a302a830 <<invalid sloc>> __builtin_va_list '__va_list_tag [1]')
    (FunctionDecl 0x7ff3a302a8d0 </Users/danieljasper/clang/llvm/tools/clang/docs/snippet.cc:1:1, line:3:1> f 'void (void)'
      (CompoundStmt 0x7ff3a302aa10 <line:1:10, line:3:1>
        (DeclStmt 0x7ff3a302a9f8 <line:2:3, line:3:1>
          (VarDecl 0x7ff3a302a980 <line:2:3, col:11> a 'int'
            (IntegerLiteral 0x7ff3a302a9d8 <col:11> 'int' 0))))))
  1 error generated.
  Error while processing snippet.cc.

The '--' at the end is important as it prevents :program:`clang-check` from
searching for a compilation database. For more information on how to setup and
use :program:`clang-check` in a project, see :doc:`HowToSetupToolingForLLVM`.