.. 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
   LanguageExtensions
   AttributeReference
   CrossCompilation
   ThreadSafetyAnalysis
   AddressSanitizer
   ThreadSanitizer
   MemorySanitizer
   UndefinedBehaviorSanitizer
   DataFlowSanitizer
   LeakSanitizer
   SanitizerCoverage
   SanitizerStats
   SanitizerSpecialCaseList
   ControlFlowIntegrity
   SafeStack
   Modules
   MSVCCompatibility
   CommandGuide/index
   FAQ

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

.. toctree::
   :maxdepth: 1

   Tooling
   ExternalClangExamples
   IntroductionToTheClangAST
   LibTooling
   LibFormat
   ClangPlugins
   RAVFrontendAction
   LibASTMatchersTutorial
   LibASTMatchers
   HowToSetupToolingForLLVM
   JSONCompilationDatabase

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

.. toctree::
   :maxdepth: 1

   ClangTools
   ClangCheck
   ClangFormat
   ClangFormatStyleOptions

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

.. toctree::
   :maxdepth: 1

   InternalsManual
   DriverInternals
   PTHInternals
   PCHInternals


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

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

