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: Alexey Bataev
E: a.bataev@hotmail.com
D: OpenMP support

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, inline assembly

N: Devin Coughlin
E: dcoughlin@apple.com
D: Clang Static Analyzer

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: Manuel Klimek
E: klimek@google.com
D: AST matchers, LibTooling

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

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

N: Brad Smith
E: brad@comstyle.com
D: OpenBSD driver

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

N: Anastasia Stulova
E: anastasia.stulova@arm.com
D: OpenCL support
