r184532 - in /branches/pph/gcc: cp/ChangeLog.pp...

crowl@gcc.gnu.org crowl@gcc.gnu.org
Thu Feb 23 22:19:00 GMT 2012


Author: crowl
Date: Thu Feb 23 22:19:24 2012
New Revision: 184532

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=184532
Log:
This patch writes the tree header for mutated trees.  This write is
necessary to get updated attribute information from the info bits.
On read, these bits are then merged into the existing tree.

Test x2incomplete4.cc is now generating assembly.  However, it
erroneously generates an inline default constructor.  This error
likely occurs because pph_in_symtab actions are handled after reading
each pph file, rather merged and emitted after all pph files are read.
Diego will address this symtab merge.

Since we are now merging types, this patch includes a fix to more
aggressively trace types.

In addition, there are a couple of fixes to protect against null
pointers.

Tested on x64.


Index: gcc/testsuite/ChangeLog.pph

2012-02-23   Lawrence Crowl  <crowl@google.com>

	* g++.dg/pph/x2incomplete4.cc: Make expected assembley diff.

Index: gcc/cp/ChangeLog.pph

2012-02-23   Lawrence Crowl  <crowl@google.com>

	* pph-core.c (pph_trace_tree): Trace trees as well as decls.
	* cp-tree.h (class_of_this_parm): Protect against null type.
	* error.c (dump_function_decl): Protect against null type.
	* pph-out.c (pph_out_tree): Write tree header for mutated trees.
	* pph-in.c (pph_merge_tree_attributes): New.
	(pph_in_merge_key_tree): Merge tree attributes.
	(pph_in_tree): Read tree header for mutated trees.
	Merge their attributes.



Modified:
    branches/pph/gcc/cp/ChangeLog.pph
    branches/pph/gcc/cp/cp-tree.h
    branches/pph/gcc/cp/error.c
    branches/pph/gcc/cp/pph-core.c
    branches/pph/gcc/cp/pph-in.c
    branches/pph/gcc/cp/pph-out.c
    branches/pph/gcc/testsuite/ChangeLog.pph
    branches/pph/gcc/testsuite/g++.dg/pph/x2incomplete4.cc



More information about the Gcc-cvs mailing list