This file is a list of the people responsible for ensuring that patches for a
particular part of Clang are reviewed, either by themself or by someone else.
They are also the gatekeepers for their part of Clang, with the final word on
what goes in or not.

The list is sorted by surname and formatted to allow easy grepping and
beautification by scripts.  The fields are: name (N), email (E), web-address
(W), PGP key ID and fingerprint (P), description (D), and snail-mail address
(S).

N: Aaron Ballman
E: aaron@aaronballman.com
D: Clang attributes

N: Chandler Carruth
E: chandlerc@gmail.com
E: chandlerc@google.com
D: CMake, library layering

N: Eric Christopher
E: echristo@gmail.com
D: Debug Information, autotools/configure/make build, inline assembly

N: Doug Gregor
E: dgregor@apple.com
D: Emeritus owner

N: Reid Kleckner
E: rnk@google.com
D: Microsoft C++ ABI compatibility and general Windows support

N: Anton Korobeynikov
E: anton@korobeynikov.info
D: Exception handling, Windows codegen, ARM EABI

N: Ted Kremenek
E: kremenek@apple.com
D: Clang Static Analyzer

N: John McCall
E: rjmccall@apple.com
D: Clang LLVM IR generation

N: Chad Rosier
E: mcrosier@codeaurora.org
D: Compiler driver

N: Richard Smith
E: richard@metafoo.co.uk
D: All parts of Clang not covered by someone else
