Daniel Jasper | 6d5b57a | 2013-01-09 21:49:28 +0000 | [diff] [blame] | 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 `clang-check` from search for a |
| 35 | compilation database. For more information on how to setup and use `clang-check` |
| 36 | in a project, see :doc:`HowToSetupToolingForLLVM`. |