Note
====

This file contains information about people who are permitted to make
changes to various parts of the compiler and associated libraries.

Please do not contact the people in this file directly to report
problems in GCC.

For general information about GCC, please visit:

  http://gcc.gnu.org

To report problems in GCC, please visit:

  http://gcc.gnu.org/bugs.html

Maintainers
===========

			Global Reviewers

Richard Earnshaw				richard.earnshaw@arm.com
Richard Biener					rguenther@suse.de
Richard Henderson				rth@redhat.com
Jakub Jelinek					jakub@redhat.com
Geoffrey Keating				geoffk@geoffk.org
Richard Kenner					kenner@nyu.edu
Jeff Law					law@redhat.com
Michael Meissner				gnu@the-meissners.org
Jason Merrill					jason@redhat.com
David S. Miller					davem@redhat.com
Joseph Myers					joseph@codesourcery.com
Diego Novillo					dnovillo@google.com
Bernd Schmidt					bernds@codesourcery.com
Ian Lance Taylor				ian@airs.com
Jim Wilson					wilson@tuliptree.org

Note that while global reviewers can approve changes to any part of
the compiler or associated libraries, they still need approval for
their own patches from other maintainers or reviewers.

			CPU Port Maintainers	(CPU alphabetical order)

aarch64 port		Marcus Shawcroft	marcus.shawcroft@arm.com
aarch64 port		Richard Earnshaw	richard.earnshaw@arm.com
alpha port		Richard Henderson	rth@redhat.com
arc port		Joern Rennecke		joern.rennecke@embecosm.com
arm port		Nick Clifton		nickc@redhat.com
arm port		Richard Earnshaw	richard.earnshaw@arm.com
arm port		Paul Brook		paul@codesourcery.com
arm port		Ramana Radhakrishnan	ramana.radhakrishnan@arm.com
avr port		Denis Chertykov		chertykov@gmail.com
bfin port		Bernd Schmidt		bernds@codesourcery.com
bfin port		Jie Zhang		jzhang918@gmail.com
c6x port		Bernd Schmidt		bernds@codesourcery.com
cris port		Hans-Peter Nilsson	hp@axis.com
epiphany port		Joern Rennecke		joern.rennecke@embecosm.com
fr30 port		Nick Clifton		nickc@redhat.com
frv port		Nick Clifton		nickc@redhat.com
frv port		Alexandre Oliva		aoliva@redhat.com
h8 port			Jeff Law		law@redhat.com
h8 port			Kazu Hirata		kazu@codesourcery.com
hppa port		Jeff Law		law@redhat.com
hppa port		John David Anglin	dave.anglin@bell.net
i386 port		Richard Henderson	rth@redhat.com
i386 port		Jan Hubicka		hubicka@ucw.cz
i386 port		Uros Bizjak		ubizjak@gmail.com
ia64 port		Jim Wilson		wilson@tuliptree.org
ia64 port		Steve Ellcey		sellcey@mips.com
iq2000 port		Nick Clifton		nickc@redhat.com
lm32 port		Sebastien Bourdeauducq	sebastien@milkymist.org
m32c port		DJ Delorie		dj@redhat.com
m32r port		Nick Clifton		nickc@redhat.com
m68k port (?)		Jeff Law		law@redhat.com
m68k port		Andreas Schwab		schwab@linux-m68k.org
m68k-motorola-sysv port	Philippe De Muyter	phdm@macqel.be
mcore port		Nick Clifton		nickc@redhat.com
mep port		DJ Delorie		dj@redhat.com
microblaze		Michael Eager		eager@eagercon.com
mips port		Eric Christopher	echristo@gmail.com
mips port		Richard Sandiford	rdsandiford@googlemail.com
mmix port		Hans-Peter Nilsson	hp@bitrange.com
mn10300 port		Jeff Law		law@redhat.com
mn10300 port		Alexandre Oliva		aoliva@redhat.com
moxie port		Anthony Green		green@moxielogic.com
msp430 port		DJ Delorie		dj@redhat.com
msp430 port		Nick Clifton		nickc@redhat.com
nds32 port		Chung-Ju Wu		jasonwucj@gmail.com
nds32 port		Shiva Chen		shiva0217@gmail.com
nios2 port		Chung-Lin Tang		cltang@codesourcery.com
nios2 port		Sandra Loosemore	sandra@codesourcery.com
pdp11 port		Paul Koning		ni1d@arrl.net
picochip port		Daniel Towner		dant@picochip.com
rl78 port		DJ Delorie		dj@redhat.com
rs6000/powerpc port	David Edelsohn		dje.gcc@gmail.com
rs6000 vector extns	Aldy Hernandez		aldyh@redhat.com
rx port	      		Nick Clifton		nickc@redhat.com
s390 port		Hartmut Penner		hpenner@de.ibm.com
s390 port		Ulrich Weigand		uweigand@de.ibm.com
s390 port		Andreas Krebbel		Andreas.Krebbel@de.ibm.com
score port		Chen Liqin		liqin.gcc@gmail.com
sh port			Alexandre Oliva		aoliva@redhat.com
sh port			Kaz Kojima		kkojima@gcc.gnu.org
sh port			Oleg Endo		olegendo@gcc.gnu.org
sparc port		Richard Henderson	rth@redhat.com
sparc port		David S. Miller		davem@redhat.com
sparc port		Eric Botcazou		ebotcazou@libertysurf.fr
spu port		Trevor Smigiel		trevor_smigiel@playstation.sony.com
spu port		David Edelsohn		dje.gcc@gmail.com
spu port		Ulrich Weigand		uweigand@de.ibm.com
tilegx port		Walter Lee		walt@tilera.com
tilepro port		Walter Lee		walt@tilera.com
v850 port		Nick Clifton		nickc@redhat.com
vax port		Matt Thomas		matt@3am-software.com
x86-64 port		Jan Hubicka		hubicka@ucw.cz
xstormy16 port		Nick Clifton		nickc@redhat.com
xtensa port		Sterling Augustine	augustine.sterling@gmail.com

			OS Port Maintainers	(OS alphabetical order)

aix			David Edelsohn		dje.gcc@gmail.com
darwin port		Mike Stump		mikestump@comcast.net
darwin port		Eric Christopher	echristo@gmail.com
darwin port		Stan Shebs		stanshebs@earthlink.net
DJGPP			DJ Delorie		dj@delorie.com
freebsd			Loren J. Rittle		ljrittle@acm.org
GNU/Hurd		Thomas Schwinge		thomas@schwinge.name
hpux			John David Anglin	dave.anglin@bell.net
hpux			Steve Ellcey		sellcey@mips.com
solaris			Rainer Orth		ro@CeBiTec.Uni-Bielefeld.DE
netbsd			Jason Thorpe		thorpej@netbsd.org
netbsd			Krister Walfridsson	krister.walfridsson@gmail.com
sh-linux-gnu		Kaz Kojima		kkojima@gcc.gnu.org
RTEMS Ports		Joel Sherrill		joel@oarcorp.com
RTEMS Ports		Ralf Corsepius		ralf.corsepius@rtems.org
VMS			Douglas Rupp		rupp@gnat.com
VMS			Tristan Gingold		gingold@adacore.com
VxWorks ports		Nathan Sidwell		nathan@codesourcery.com
windows, cygwin, mingw	Christopher Faylor	cgf@gcc.gnu.org
windows, cygwin, mingw	Kai Tietz		ktietz@redhat.com
windows, cygwin, mingw	Dave Korn		dave.korn.cygwin@gmail.com

			Language Front Ends Maintainers

C front end/ISO C99	Joseph Myers		joseph@codesourcery.com
C front end/ISO C99	Richard Henderson	rth@redhat.com
Ada front end		Geert Bosch		bosch@gnat.com
Ada front end		Robert Dewar		dewar@gnat.com
Ada front end		Arnaud Charlet		charlet@act-europe.fr
Ada front end		Eric Botcazou		ebotcazou@libertysurf.fr
Fortran			Paul Brook		paul@codesourcery.com
c++			Jason Merrill		jason@redhat.com
c++			Nathan Sidwell		nathan@codesourcery.com
go			Ian Lance Taylor	ian@airs.com
java			Per Bothner		per@bothner.com
java			Andrew Haley		aph@redhat.com
java			Tom Tromey		tromey@redhat.com
objective-c/c++		Mike Stump		mikestump@comcast.net
objective-c/c++		Stan Shebs		stanshebs@earthlink.net

			Various Maintainers

libbacktrace		Ian Lance Taylor	ian@airs.com
libcpp			Per Bothner		per@bothner.com
libcpp			All C and C++ front end maintainers
fp-bit			Ian Lance Taylor	ian@airs.com
libdecnumber		Ben Elliston		bje@gnu.org
libgcc			Ian Lance Taylor	ian@airs.com
libgcj			Tom Tromey		tromey@redhat.com
libgcj			Bryce McKinlay		mckinlay@redhat.com
libgo			Ian Lance Taylor	ian@airs.com
libgomp			Richard Henderson	rth@redhat.com
libgomp			Jakub Jelinek		jakub@redhat.com
libiberty		DJ Delorie		dj@redhat.com
libiberty		Ian Lance Taylor	ian@airs.com
libffi testsuite	Andreas Tobler		andreast@gcc.gnu.org
libobjc			Nicola Pero		nicola.pero@meta-innovation.com
libobjc			Andrew Pinski		pinskia@gmail.com
libquadmath		Tobias Burnus		burnus@net-b.de
libquadmath		Jakub Jelinek		jakub@redhat.com
libvtv			Caroline Tice		cmtice@google.com
loop discovery		Michael Hayes		m.hayes@elec.canterbury.ac.nz
soft-fp			Joseph Myers		joseph@codesourcery.com
scheduler (+ haifa)	Jim Wilson		wilson@tuliptree.org
scheduler (+ haifa)	Michael Meissner	gnu@the-meissners.org
scheduler (+ haifa)	Jeff Law		law@redhat.com
scheduler (+ haifa)	Vladimir Makarov	vmakarov@redhat.com
modulo-scheduler	Ayal Zaks		zaks@il.ibm.com
reorg			Jeff Law		law@redhat.com
caller-save.c		Jeff Law		law@redhat.com
callgraph		Jan Hubicka		hubicka@ucw.cz
debugging code		Jim Wilson		wilson@tuliptree.org
dwarf debugging code	Jason Merrill		jason@redhat.com
dwarf debugging code	Cary Coutant		ccoutant@google.com
c++ runtime libs	Paolo Carlini		paolo.carlini@oracle.com
c++ runtime libs	Ulrich Drepper		drepper@gmail.com
c++ runtime libs	Benjamin De Kosnik	bkoz@gnu.org
c++ runtime libs	Jonathan Wakely		jwakely@redhat.com
*synthetic multiply	Torbjorn Granlund	tege@swox.com
*c-torture		Torbjorn Granlund	tege@swox.com
fixincludes		Bruce Korb		bkorb@gnu.org
*gimpl*			Jakub Jelinek		jakub@redhat.com
*gimpl*			Aldy Hernandez		aldyh@redhat.com
*gimpl*			Jason Merrill		jason@redhat.com
gcse.c 			Jeff Law		law@redhat.com
global opt framework	Jeff Law		law@redhat.com
jump.c			David S. Miller		davem@redhat.com
web pages		Gerald Pfeifer		gerald@pfeifer.com
config.sub/config.guess	Ben Elliston		config-patches@gnu.org
basic block reordering	Jason Eckhardt		jle@rice.edu
i18n			Philipp Thomas		pth@suse.de
i18n			Joseph Myers		joseph@codesourcery.com
diagnostic messages	Dodji Seketeli		dodji@redhat.com
build machinery (*.in)	Paolo Bonzini		bonzini@gnu.org
build machinery (*.in)	DJ Delorie		dj@redhat.com
build machinery (*.in)	Nathanael Nerode	neroden@gcc.gnu.org
build machinery (*.in)	Alexandre Oliva		aoliva@redhat.com
build machinery (*.in)	Ralf Wildenhues		Ralf.Wildenhues@gmx.de
docs co-maintainer	Gerald Pfeifer		gerald@pfeifer.com
docs co-maintainer	Joseph Myers		joseph@codesourcery.com
docstring relicensing	Diego Novillo		dnovillo@google.com
docstring relicensing	Gerald Pfeifer		gerald@pfeifer.com
docstring relicensing	Joseph Myers		joseph@codesourcery.com
predict.def		Jan Hubicka		hubicka@ucw.cz
contrib/regression	Geoff Keating		geoffk@geoffk.org
gcov			Jan Hubicka		hubicka@ucw.cz
gcov			Nathan Sidwell		nathan@codesourcery.com
option handling		Neil Booth		neil@daikokuya.co.uk
option handling		Joseph Myers		joseph@codesourcery.com
middle-end		Jeff Law		law@redhat.com
middle-end		Roger Sayle		roger@eyesopen.com
middle-end		Ian Lance Taylor	ian@airs.com
middle-end		Diego Novillo		dnovillo@google.com
middle-end		Richard Biener		rguenther@suse.de
tree-ssa		Diego Novillo		dnovillo@google.com
tree-ssa		Andrew MacLeod		amacleod@redhat.com
PRE			Daniel Berlin		dberlin@dberlin.org
code sinking		Daniel Berlin		dberlin@dberlin.org
tree browser/unparser	Sebastian Pop		sebastian.pop@amd.com
scev, data dependence	Daniel Berlin		dberlin@dberlin.org
scev, data dependence	Sebastian Pop		sebastian.pop@amd.com
profile feedback	Jan Hubicka		hubicka@ucw.cz
type-safe vectors	Nathan Sidwell		nathan@codesourcery.com
alias analysis		Daniel Berlin		dberlin@dberlin.org
reload			Ulrich Weigand		uweigand@de.ibm.com
reload			Bernd Schmidt		bernds@codesourcery.com
dfp.c, related		Ben Elliston		bje@gnu.org
RTL optimizers		Eric Botcazou		ebotcazou@libertysurf.fr
auto-vectorizer		Richard Biener		rguenther@suse.de
auto-vectorizer		Zdenek Dvorak		ook@ucw.cz
loop infrastructure	Zdenek Dvorak		ook@ucw.cz
OpenMP			Jakub Jelinek		jakub@redhat.com
testsuite		Rainer Orth		ro@CeBiTec.Uni-Bielefeld.DE
testsuite		Mike Stump		mikestump@comcast.net
testsuite		Janis Johnson		janisjo@codesourcery.com
register allocation	Vladimir Makarov	vmakarov@redhat.com
gdbhooks.py		David Malcolm		dmalcolm@redhat.com
SLSR			Bill Schmidt		wschmidt@linux.vnet.ibm.com

Note that individuals who maintain parts of the compiler need approval to
check in changes outside of the parts of the compiler they maintain.

			Reviewers

dataflow		Paolo Bonzini		bonzini@gnu.org
dataflow		Seongbae Park		seongbae.park@gmail.com
dataflow 		Kenneth Zadeck		zadeck@naturalbridge.com
driver			Joseph Myers		joseph@codesourcery.com
Fortran			Janne Blomqvist		jb@gcc.gnu.org
Fortran			Tobias Burnus		burnus@net-b.de
Fortran			Jerry DeLisle		jvdelisle@gcc.gnu.org
Fortran			Erik Edelmann		erik.edelmann@iki.fi
Fortran			Daniel Franke		franke.daniel@gmail.com
Fortran			Steven G. Kargl		sgk@troutmask.apl.washington.edu
Fortran			Thomas König		tkoenig@gcc.gnu.org
Fortran			Daniel Kraft		d@domob.eu
Fortran			Toon Moene		toon@moene.org
Fortran			Mikael Morin		mikael.morin@sfr.fr
Fortran			Tobias Schlüter		tobias.schlueter@physik.uni-muenchen.de
Fortran			Paul Thomas		pault@gcc.gnu.org
Fortran			Janus Weil		janus@gcc.gnu.org
gengtype/GTY		Laurynas Biveinis       laurynas.biveinis@gmail.com
Graphite		Daniel Berlin		dberlin@dberlin.org
Graphite 		Tobias Grosser		grosser@fim.uni-passau.de
Graphite		Sebastian Pop		sebastian.pop@amd.com
libcpp			Tom Tromey		tromey@redhat.com
libsanitizer, asan.c	Jakub Jelinek		jakub@redhat.com
libsanitizer, asan.c	Dodji Seketeli		dodji@redhat.com
libsanitizer, asan.c	Kostya Serebryany	kcc@google.com
libsanitizer, asan.c	Dmitry Vyukov		dvyukov@google.com
loop optimizer		Zdenek Dvorak		ook@ucw.cz
loop optimizer		Daniel Berlin		dberlin@dberlin.org
LTO			Diego Novillo		dnovillo@google.com
LTO			Richard Biener		rguenther@suse.de
LTO plugin		Cary Coutant		ccoutant@google.com
Plugin			Diego Novillo		dnovillo@google.com
Plugin			Le-Chun Wu		lcwu@google.com
register allocation	Peter Bergner		bergner@vnet.ibm.com
register allocation	Kenneth Zadeck		zadeck@naturalbridge.com
register allocation	Seongbae Park		seongbae.park@gmail.com
RTL optimizers		Steven Bosscher		steven@gcc.gnu.org
selective scheduling	Andrey Belevantsev	abel@ispras.ru

Note that while reviewers can approve changes to parts of the compiler
that they maintain, they still need approval for their own patches
from other maintainers or reviewers.

			Write After Approval	(last name alphabetical order)

Mark G. Adams					mark.g.adams@sympatico.ca
Raksit Ashok					raksit@google.com
Matt Austern					austern@google.com
David Ayers					ayers@fsfe.org
Giovanni Bajo					giovannibajo@gcc.gnu.org
Simon Baldwin					simonb@google.com
Scott Bambrough					scottb@netwinder.org
Wolfgang Bangerth				bangerth@dealii.org
Tejas Belagod					tejas.belagod@arm.com
Andrey Belevantsev				abel@ispras.ru
Jon Beniston					jon@beniston.com
Peter Bergner					bergner@vnet.ibm.com
Jan Beulich					jbeulich@novell.com
David Billinghurst				David.Billinghurst@riotinto.com
Tomas Bily					tbily@suse.cz
Eric Blake					ericb@gcc.gnu.org
Phil Blundell					pb@futuretv.com
Hans Boehm					hboehm@gcc.gnu.org
Segher Boessenkool				segher@kernel.crashing.org
Ian Bolton					ian.bolton@arm.com
Andrea Bona					andrea.bona@st.com
Paolo Bonzini					bonzini@gnu.org
Neil Booth					neil@daikokuya.co.uk
Robert Bowdidge					bowdidge@apple.com
Joel Brobecker					brobecker@gnat.com
Dave Brolley					brolley@redhat.com
Julian Brown					julian@codesourcery.com
Christian Bruel					christian.bruel@st.com
Kevin Buettner					kevinb@redhat.com
Adam Butcher					adam@jessamine.co.uk
Andrew Cagney					cagney@redhat.com
Daniel Carrera					dcarrera@gmail.com
Stephane Carrez					stcarrez@nerim.fr
Gabriel Charette				gchare@google.com
Chandra Chavva					cchavva@redhat.com
Fabien Chêne					fabien@gcc.gnu.org
Bin Cheng					bin.cheng@arm.com
Harshit Chopra					harshit@google.com
William Cohen					wcohen@redhat.com
Josh Conner					jconner@apple.com
R. Kelley Cook					kcook@gcc.gnu.org
Christian Cornelssen				ccorn@cs.tu-berlin.de
François-Xavier Coudert				fxcoudert@gcc.gnu.org
Cary Coutant					ccoutant@google.com
Lawrence Crowl					crowl@google.com
Ian Dall					ian@beware.dropbear.id.au
David Daney					david.daney@caviumnetworks.com
Bud Davis					jmdavis@link.com
Chris Demetriou					cgd@google.com
Sameera Deshpande				sameera.deshpande@arm.com
François Dumont					fdumont@gcc.gnu.org
Benoit Dupont de Dinechin			benoit.dupont-de-dinechin@st.com
Michael Eager					eager@eagercon.com
Bernd Edlinger					bernd.edlinger@hotmail.de
Phil Edwards					pme@gcc.gnu.org
Mohan Embar					gnustuff@thisiscool.com
Revital Eres					eres@il.ibm.com
Marc Espie					espie@cvs.openbsd.org
Rafael Ávila de Espíndola			espindola@google.com
Ansgar Esztermann				ansgar@thphy.uni-duesseldorf.de
Doug Evans					dje@google.com
Chris Fairles					cfairles@gcc.gnu.org
Changpeng Fang					changpeng.fang@amd.com
Li Feng						nemokingdom@gmail.com
Thomas Fitzsimmons				fitzsim@redhat.com
Brian Ford					ford@vss.fsi.com
John Freeman					jfreeman08@gmail.com
Nathan Froyd					froydnj@gcc.gnu.org
Chao-ying Fu					fu@mips.com
Gary Funck					gary@intrepid.com
Pompapathi V Gadad 				Pompapathi.V.Gadad@nsc.com
Gopalasubramanian Ganesh			Ganesh.Gopalasubramanian@amd.com
Kaveh Ghazi					ghazi@gcc.gnu.org
Matthew Gingell					gingell@gnat.com
Tristan Gingold					gingold@adacore.com
Jan-Benedict Glaw				jbglaw@lug-owl.de
Marc Glisse					marc.glisse@inria.fr
Anthony Green					green@redhat.com
James Greenhalgh				james.greenhalgh@arm.com
Doug Gregor					doug.gregor@gmail.com
Matthew Gretton-Dann				matthew.gretton-dann@arm.com
Jon Grimm					jgrimm2@us.ibm.com
Laurent Guerby					laurent@guerby.net
Xuepeng Guo					terry.guo@arm.com
Wei Guozhi					carrot@google.com
Mostafa Hagog					hagog@gcc.gnu.org
Olivier Hainque					hainque@act-europe.fr
Stuart Hastings					stuart@apple.com
Pat Haugen					pthaugen@us.ibm.com
Mark Heffernan					meheff@google.com
George Helffrich				george@gcc.gnu.org
Fergus Henderson				fjh@cs.mu.oz.au
Stuart Henderson				shenders@gcc.gnu.org
Matthew Hiller					hiller@redhat.com
Manfred Hollstein				mh@suse.com
Cong Hou					congh@google.com
Falk Hueffner					falk@debian.org
Andrew John Hughes				gnu_andrew@member.fsf.org
Dominique d'Humieres				dominiq@lps.ens.fr
Andy Hutchinson					hutchinsonandy@aim.com
Naveen H.S					Naveen.Hurugalawadi@caviumnetworks.com
Meador Inge					meadori@codesourcery.com
Bernardo Innocenti				bernie@develer.com
Balaji V. Iyer                                  bviyer@gmail.com
Daniel Jacobowitz				drow@false.org
Andreas Jaeger					aj@suse.de
Harsha Jagasia					harsha.jagasia@amd.com
Fariborz Jahanian				fjahanian@apple.com
Martin Jambor					mjambor@suse.cz
Andrew Jenner					andrew@codesourcery.com
Janis Johnson					janisjo@codesourcery.com
Teresa Johnson					tejohnson@google.com
Kean Johnston					jkj@sco.com
Phillip Jordan					phillip.m.jordan@gmail.com
Tim Josling					tej@melbpc.org.au
Victor Kaplansky				victork@il.ibm.com
Brendan Kehoe					brendan@zen.org
Matthias Klose					doko@debian.org
Andi Kleen					andi@firstfloor.org
Jeff Knaggs					jknaggs@redhat.com
Michael Koch					konqueror@gmx.de
Matt Kraai					kraai@ftbfs.org
Jan Kratochvil					jan.kratochvil@redhat.com
Venkataramanan Kumar				venkataramanan.kumar@amd.com
Maxim Kuvyrkov					maxim@kugelworks.com
Doug Kwan					dougkwan@google.com
Scott Robert Ladd				scott.ladd@coyotegulch.com
Razya Ladelsky					razya@gcc.gnu.org
Thierry Lafage					thierry.lafage@inria.fr
Aaron W. LaFramboise				aaronavay62@aaronwl.com
Rask Ingemann Lambertsen			ccc94453@vip.cybercity.dk
Asher Langton					langton2@llnl.gov
Chris Lattner					sabre@nondot.org
Terry Laurenzo					tlaurenzo@gmail.com
Georg-Johann Lay				avr@gjlay.de
Marc Lehmann					pcg@goof.com
James Lemke					jwlemke@codesourcery.com
Kriang Lerdsuwanakij				lerdsuwa@users.sourceforge.net
Xinliang David Li				davidxl@google.com
Jiangning Liu					jiangning.liu@arm.com
Sa Liu						saliu@de.ibm.com
Ralph Loader					rcl@ihug.co.nz
Gabor Loki					loki@inf.u-szeged.hu
Sandra Loosemore				sandra@codesourcery.com
Manuel López-Ibáñez				manu@gcc.gnu.org
Martin v. Löwis					loewis@informatik.hu-berlin.de
H.J. Lu						hjl.tools@gmail.com
Christophe Lyon					christophe.lyon@st.com
Luis Machado					luisgpm@br.ibm.com
Ziga Mahkovec					ziga.mahkovec@klika.si
David Malcolm					dmalcolm@redhat.com
Simon Martin					simartin@users.sourceforge.net
Ranjit Mathew					rmathew@hotmail.com
Michael Matz					matz@suse.de
Greg McGary					gkm@gnu.org
Roland McGrath					roland@hack.frob.com
Adam Megacz					adam@xwt.org
Bingfeng Mei					bmei@broadcom.com
Jim Meyering					jim@meyering.net
Martin Michlmayr				tbm@cyrius.com
Lee Millward					lee.millward@gmail.com
Alan Modra					amodra@gmail.com
Alexander Monakov				amonakov@ispras.ru
Catherine Moore					clm@codesourcery.com
James A. Morrison				phython@gcc.gnu.org
Brooks Moses					bmoses@google.com
Dirk Mueller					dmueller@suse.de
Phil Muldoon					pmuldoon@redhat.com
Quentin Neill					quentin.neill.gnu@gmail.com
Adam Nemet					adambnemet@gmail.com
Thomas Neumann					tneumann@users.sourceforge.net
Dan Nicolaescu					dann@ics.uci.edu
Dorit Nuzman					dorit@il.ibm.com
David O'Brien					obrien@FreeBSD.org
Carlos O'Donell					carlos@redhat.com
Peter O'Gorman					pogma@thewrittenword.com
Andrea Ornstein					andrea.ornstein@st.com
Seongbae Park					seongbae.park@gmail.com
Devang Patel					dpatel@apple.com
Fernando Pereira				pronesto@gmail.com
Kaushik Phatak					kaushik.phatak@kpitcummins.com
Nicolas Pitre					nico@cam.org
Paul Pluzhnikov					ppluzhnikov@google.com
Marek Polacek					polacek@redhat.com
Antoniu Pop					antoniu.pop@gmail.com
Vidya Praveen					vidyapraveen@arm.com
Vladimir Prus					vladimir@codesourcery.com
Yao Qi						yao@codesourcery.com
Jerry Quinn					jlquinn@optonline.net
Ramana Radhakrishnan				ramana.radhakrishnan@arm.com
Easwaran Raman					eraman@google.com
Rolf Rasmussen					rolfwr@gcc.gnu.org
Volker Reichelt					v.reichelt@netcologne.de
Bernhard Reutner-Fischer			rep.dot.nop@gmail.com
Tom Rix						trix@redhat.com
Craig Rodrigues					rodrigc@gcc.gnu.org
Erven Rohou					erven.rohou@inria.fr
Ira Rosen					irar@il.ibm.com
Yvan Roux					yvan.roux@linaro.org
Maciej W. Rozycki				macro@linux-mips.org
Silvius Rus					rus@google.com
Matthew Sachs					msachs@apple.com
Hariharan Sandanagobalane			hariharan.gcc@gmail.com
Iain Sandoe					iain@codesourcery.com
Duncan Sands					baldrick@gcc.gnu.org
Trevor Saunders				tsaunders@mozilla.com
William Schmidt 				wschmidt@linux.vnet.ibm.com
Tilo Schwarz					tilo@tilo-schwarz.de
Dodji Seketeli					dodji@gcc.gnu.org
Svein Seldal					svein@dev.seldal.com
Thiemo Seufer					ths@networkno.de
Marcus Shawcroft				marcus.shawcroft@arm.com
Tim Shen					timshen91@gmail.com
Sharad Singhai					singhai@google.com
Johannes Singler				singler@kit.edu
Franz Sirl					franz.sirl-kernel@lauterbach.com
Jan Sjodin					jan.sjodin@amd.com
Edward Smith-Rowland				3dw4rd@verizon.net
Jayant Sonar					rsonar.jayant@gmail.com
Anatoly Sokolov					aesok@post.ru
Michael Sokolov					msokolov@ivan.Harhan.ORG
Richard Stallman				rms@gnu.org
Basile Starynkevitch				basile@starynkevitch.net
Jakub Staszak					kuba@et.pl
Graham Stott					graham.stott@btinternet.com
Andrew Stubbs					ams@codesourcery.com
Mike Stump					mikestump@comcast.net
Jeff Sturm					jsturm@gcc.gnu.org
Andrew Sutton					andrew.n.sutton@gmail.com
Gabriele Svelto					gabriele.svelto@st.com
Sriraman Tallam					tmsriram@google.com
Chung-Lin Tang					cltang@codesourcery.com
Samuel Tardieu					sam@rfc1149.net
Dinar Temirbulatov				dinar@kugelworks.com
Kresten Krab Thorup				krab@gcc.gnu.org
Caroline Tice					cmtice@google.com
Kyrylo Tkachov					kyrylo.tkachov@arm.com
Konrad Trifunovic				konrad.trifunovic@inria.fr
Markus Trippelsdorf				markus@trippelsdorf.de
David Ung					davidu@mips.com
Neil Vachharajani				nvachhar@gmail.com
Kris Van Hees					kris.van.hees@oracle.com
Kugan Vivekanandarajah				kuganv@linaro.org	
Tom de Vries					tom@codesourcery.com
Nenad Vukicevic					nenad@intrepid.com
Feng Wang					fengwang@nudt.edu.cn
Stephen M. Webb					stephen.webb@bregmasoft.com
John Wehle					john@feith.com
Florian Weimer					fw@deneb.enyo.de
Zack Weinberg					zackw@panix.com
Mark Wielaard					mark@gcc.gnu.org
Edmar Wienskoski				edmar@freescale.com
Ollie Wild					aaw@google.com
Kevin Williams					kevin.williams@inria.fr
Carlo Wood					carlo@alinoe.com
Chung-Ju Wu					jasonwucj@gmail.com
Le-Chun Wu					lcwu@google.com
Mingjie Xing					mingjie.xing@gmail.com
Canqun Yang					canqun@nudt.edu.cn
Jeffrey Yasskin					jyasskin@google.com
Joey Ye						joey.ye@arm.com
Greta Yorsh					greta.yorsh@arm.com
David Yuste					david.yuste@gmail.com
Kirill Yukhin					kirill.yukhin@gmail.com
Kenneth Zadeck					zadeck@naturalbridge.com
Yufeng Zhang					yufeng.zhang@arm.com
Shujing Zhao					pearly.zhao@oracle.com
Jon Ziegler					jonz@apple.com
Roman Zippel					zippel@linux-m68k.org
Josef Zlomek					josef.zlomek@email.cz

Bug database only accounts

James Dennett					jdennett@acm.org
Christian Ehrhardt				ehrhardt@mathematik.uni-ulm.de
Dara Hazeghi					dhazeghi@yahoo.com
