R.I.P. Brendan Patrick Kehoe, December 3, 1970 - July 19, 2011.

abstract	- abstract functions
alignof		- gcc alignof builtin
ambiguity	- diagnosing ambiguities
arm		- ARM cases
array-refs	- arrays of references
bit-fields	- bit fields
chainon		- deaths cuz we call chainon() incorrectly
copy		- copy constructors
crash		- old compiler crashes/aborts
cvt		- user-defined conversions
def-fns		- default function generation (in add'n to copy)
enum-clash	- int vs enum
enum		- enumerated types
err-msg		- error messages
friend		- dealing with friend functions and classes
groff		- crashes derived from groff code
init		- initialization bugs
label		- handling labels
line		- line numbers in error messages
misc		- miscellaneous tests that didn't fit another category
nest		- nested types
new-array	- doing new of an array
new		- generic operator new bugs
operators	- tests for various overloaded operators
parse		- parser bugs
prepost		- prefix/postfix operator ++/--
ptolemy		- bugs derived from ptolemy
recurse		- infinite recursion in the compiler
redecl		- handling redeclarations
scope		- managing scopes
shadow		- shadowing of params, etc
sizeof		- ARM compliance w/ sizeof operator
sorry		- old "sorry, not implemented" messages
static		- handling static data
template	- template bugs
union		- handling unions
visibility	- access control and visibility checking
warnings	- warning messages


Copyright (C) 1997-2021 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
