egcs/gcc cp/ChangeLog testsuite/ChangeLog cp/d ...

jakub@gcc.gnu.org jakub@gcc.gnu.org
Mon Mar 26 02:05:00 GMT 2001


CVSROOT:	/cvs/gcc
Module name:	egcs
Branch: 	gcc-3_0-branch
Changes by:	jakub@gcc.gnu.org	2001-03-26 02:05:27

Modified files:
	gcc/cp         : ChangeLog 
	gcc/testsuite  : ChangeLog 
	gcc/cp         : decl.c class.c cp-tree.h optimize.c mangle.c 
	                 search.c 
Added files:
	gcc/testsuite/g++.old-deja/g++.other: mangle3.C 

Log message:
	* decl.c (local_names): Define.
	(push_local_name): New.
	(grok_reference_init): Return init if initializing static reference
	variable with non-constant instead of emitting it.
	Move expand_static_init call to cp_finish_decl.
	(layout_var_decl): Call push_local_name.
	(maybe_commonize_var): Allow inlining functions even if they have
	static local variables, use comdat_linkage for them if flag_weak.
	(check_initializer): Call obscure_complex_init if
	grok_reference_init returned non-zero.
	(save_function_data): Clear x_local_names.
	(pop_cp_function_context): Free x_local_names.
	(mark_inlined_fns): Remove.
	(mark_lang_function): Mark x_local_names.
	(lang_mark_tree): Don't mark DECL_ACCESS for DECL_DISCRIMINATOR_P.
	Mark inlined_fns as tree, remove call to mark_inlined_fns.
	* class.c (alter_access): Ensure DECL_ACCESS is never set if
	DECL_DISCRIMINATOR_P.
	* cp-tree.h (cp_language_function): Add x_local_names.
	(lang_decl_flags): Add discriminator into u2.
	(lang_decl_inlined_fns): Remove.
	(lang_decl): inlined_fns is now a TREE_VEC.
	(DECL_DISCRIMINATOR_P, DECL_DISCRIMINATOR): Define.
	* optimize.c (inlinable_function_p): DECL_INLINED_FNS is now a
	TREE_VEC, not a custom structure.
	(optimize_function): Likewise.
	* mangle.c (discriminator_for_local_entity): Discriminate among
	VAR_DECL local entities.
	* search.c (dfs_access_in_type): If DECL_DISCRIMINATOR_P, DECL_ACCESS
	is not valid.
	
	* g++.old-deja/g++.other/mangle3.C: New test.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/cp/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_0-branch&r1=1.2227.2.52&r2=1.2227.2.53
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_0-branch&r1=1.1074.2.36&r2=1.1074.2.37
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/cp/decl.c.diff?cvsroot=gcc&only_with_tag=gcc-3_0-branch&r1=1.747.2.12&r2=1.747.2.13
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/cp/class.c.diff?cvsroot=gcc&only_with_tag=gcc-3_0-branch&r1=1.358.2.11&r2=1.358.2.12
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/cp/cp-tree.h.diff?cvsroot=gcc&only_with_tag=gcc-3_0-branch&r1=1.572.2.12&r2=1.572.2.13
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/cp/optimize.c.diff?cvsroot=gcc&only_with_tag=gcc-3_0-branch&r1=1.51.2.7&r2=1.51.2.8
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/cp/mangle.c.diff?cvsroot=gcc&only_with_tag=gcc-3_0-branch&r1=1.26.4.3&r2=1.26.4.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/cp/search.c.diff?cvsroot=gcc&only_with_tag=gcc-3_0-branch&r1=1.202.2.3&r2=1.202.2.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/testsuite/g++.old-deja/g++.other/mangle3.C.diff?cvsroot=gcc&only_with_tag=gcc-3_0-branch&r1=NONE&r2=1.1.2.1



More information about the Gcc-cvs mailing list