.. Clang documentation master file, created by
   sphinx-quickstart on Sun Dec  9 20:01:55 2012.
   You can adapt this file completely to your liking, but it should at least
   contain the root `toctree` directive.

.. title:: Welcome to Clang's documentation!

.. toctree::
   :maxdepth: 1

   ReleaseNotes

Using Clang as a Compiler
=========================

.. toctree::
   :maxdepth: 1

   UsersManual
   Toolchain
   LanguageExtensions
   ClangCommandLineReference
   AttributeReference
   DiagnosticsReference
   CrossCompilation
   ClangStaticAnalyzer
   ThreadSafetyAnalysis
   DataFlowAnalysisIntro
   AddressSanitizer
   ThreadSanitizer
   MemorySanitizer
   UndefinedBehaviorSanitizer
   DataFlowSanitizer
   LeakSanitizer
   SanitizerCoverage
   SanitizerStats
   SanitizerSpecialCaseList
   ControlFlowIntegrity
   LTOVisibility
   SafeStack
   ShadowCallStack
   SourceBasedCodeCoverage
   Modules
   MSVCCompatibility
   OpenCLSupport
   OpenMPSupport
   SYCLSupport
   ThinLTO
   APINotes
   CommandGuide/index
   FAQ

Using Clang as a Library
========================

.. toctree::
   :maxdepth: 1

   Tooling
   ExternalClangExamples
   IntroductionToTheClangAST
   LibTooling
   LibFormat
   ClangPlugins
   RAVFrontendAction
   LibASTMatchersTutorial
   LibASTMatchers
   ClangTransformerTutorial
   LibASTImporter
   HowToSetupToolingForLLVM
   JSONCompilationDatabase
   RefactoringEngine

Using Clang Tools
=================

.. toctree::
   :maxdepth: 1

   ClangTools
   ClangCheck
   ClangFormat
   ClangFormatStyleOptions
   ClangFormattedStatus
   ClangNvlinkWrapper
   ClangOffloadBundler

Design Documents
================

.. toctree::
   :maxdepth: 1

   InternalsManual
   DriverInternals
   PCHInternals
   ItaniumMangleAbiTags
   HardwareAssistedAddressSanitizerDesign.rst
   ConstantInterpreter


Indices and tables
==================

* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

