ClangCheck.rst 1.6 KB

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