GCC with Bounds Checking, By Richard W.M. Jones <rjones@orchestream.com>
------------------------------------------------------------------------

1. KNOWN BUGS
-------------

Description:
	The following bug was pointed out by Eberhard Mattes
	<mattes@azu.informatik.uni-stuttgart.d400.de>
Example code:
	#define FOO(c) ({ int temp = c; temp; })

	static void foo (int x)
	{
	  goto lbl;
	
	lbl:
	  if (FOO (x))
	    ++x;
	}
Comment:
	Without -fbounds-checking, no error.
	With -fbounds-checking, we get:
		foo.c: In function `foo':
		foo.c:7: label `lbl' used before containing binding contour
	Must be something to do with how I'm adding constructors to
	variables in binding contours.


2. MISSING FEATURES
-------------------

Description:
	Function pointers aren't found & checked.
Comment:
	We can find all function pointers using the same mechanism as for
	static variables. We make them into byte-sized objects with
	alignment -1 so that you can't do pointer arithmetic on them.


3. LIMITATIONS IN FUNCTIONALITY
-------------------------------

Description:
	Bounds checking isn't compatible with setjmp, longjmp.
Comment:
	The mechanism used by push/pop function (see 'functions.c' in the
	bc-library) doesn't like functions that don't return.
