.. 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.

Welcome to Clang's documentation!
=================================

The conversion to Sphinx/reStructuredText based documentation is in
progress. This page will get filled out with docs soon...

.. toctree::
   :maxdepth: 2

   LanguageExtensions
   LibASTMatchers
   LibTooling
   PCHInternals
   ThreadSanitizer
   Tooling
   AddressSanitizer
   AnalyzerRegions
   ClangPlugins
   ClangTools
   HowToSetupToolingForLLVM
   IntroductionToTheClangAST
   JSONCompilationDatabase
   LibASTMatchersTutorial
   PTHInternals
   RAVFrontendAction
   UsersManual
   AutomaticReferenceCounting


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

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

