2005-07-07  Release Manager

	* GCC 4.0.1 released.

2005-04-20  Release Manager

	* GCC 4.0.0 released.

2005-03-11  James A. Morrison  <phython@gcc.gnu.org>

	Backport recent test cases added to mainline:
	2005-02-26  James A. Morrison  <phython@gcc.gnu.org>

	* compile/var_defs: Add uninitialized variables.

	2005-02-26  James A. Morrison  <phython@gcc.gnu.org>

	* compile/extrafunc.tree, compile/extravar.tree: New tests.

	2005-02-26  James A. Morrison  <phython@gcc.gnu.org>

	* compile/unsigned.tree: New test.

2005-02-24  James A. Morrison  <phython@gcc.gnu.org>

	PR other/19896
        * execute/execute.exp: New file.
        * execute/funccall.tree, execute/funccall-2.tree, execute/initial.tree,
        execute/main.tree, execute/static.tree: New tests.

2005-02-24  James A. Morrison  <phython@gcc.gnu.org>

	PR other/19897
	* compile/exit.tree, compile/extref.tree, compile/function-1.tree,
	compile/syntax-1.tree: New tests.

2004-10-02  James A. Morrison  <phython@gcc.gnu.org>

	* compile/autofunc.tree: New File.
	* compile/badchar.tree: New File.
	* compile/externvar.tree: New File.
	* compile/mismatch.tree: New File.
	* compile/noproto.tree: New File.
	* compile/novar.tree: New File.
	* compile/var_defs.tree: Add duplicate variable.

2004-07-31  James A. Morrison  <phython@gcc.gnu.org>

	* compile/vars_def.tree: New File.
	* compile/badreturn.tree: New File.

2004-01-18  James A. Morrison  <ja2morri@uwaterloo.ca>

        * compile/compile.exp: New File.
        * compile/tabs.tree: Test whether the front end
        compiles code with tabs in it.

2003-02-25  Tim Josling  <tej@melbpc.org.au>

	* treetests.exp (run3): set options to force aggressive GC, to
	ensure GC is all set up correct,

2002-05-07  Tim Josling  <tej@melbpc.org.au>

	* Makefile.in: Fix copyright
	* a01gcci01.c: Ditto
	* a01gcci01.tree: Ditto
	* treetests.exp: Ditto

2002-04-13  Tim Josling  <tej@melbpc.org.au>

	* treetree.c (tree_code_create_function_initial)
	Remove duplicate call to layout_decl

2001-12-02  Tim Josling  <tej@melbpc.org.au>
     
      * Make-lang.in
      Ensure directory is built during install (installdirs dependency)

      * lex.l
      Work around poisoned malloc (undef IN_GCC)
      Remove fake definition of tree.

      * parse.y
      Work around poisoned malloc (undef IN_GCC)

      * tree1.c
      New front end interface. 
      (top level) New structure lang_hooks.
      (tree_post_options) Remove. 
      errorcount now a macro so do not define it.
      current_nesting_level => work_nesting_level due to clash. 

      * treelang.h
      errorcount now a macro so do not reference it.

      * treetree.c
      Replace NULL_PTR by NULL.
      (tree_code_get_expression) Mark op3 unused.
      Do not init builtins.

2001-06-11  Tim Josling  <tej@melbpc.org.au>

	* treelang.exp (global) remove COBOL specific code. 

2001-05-24  Tim Josling  <tej@melbpc.org.au>

        Created this directory and its tests. All derived from the cobol
	test swamp which was also all written by me.
	

