.. 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
   ThreadSafetyAnalysis
   AddressSanitizer
   ThreadSanitizer
   MemorySanitizer
   UndefinedBehaviorSanitizer
   DataFlowSanitizer
   LeakSanitizer
   SanitizerCoverage
   SanitizerStats
   SanitizerSpecialCaseList
   ControlFlowIntegrity
   LTOVisibility
   SafeStack
   SourceBasedCodeCoverage
   Modules
   MSVCCompatibility
   OpenMPSupport
   ThinLTO
   CommandGuide/index
   FAQ

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

.. toctree::
   :maxdepth: 1

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

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

.. toctree::
   :maxdepth: 1

   ClangTools
   ClangCheck
   ClangFormat
   ClangFormatStyleOptions

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

.. toctree::
   :maxdepth: 1

   InternalsManual
   DriverInternals
   PTHInternals
   PCHInternals
   ItaniumMangleAbiTags
   HardwareAssistedAddressSanitizerDesign.rst


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

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

