r149188 - in /trunk/gcc: cp/ChangeLog cp/cp-tre...

jason@gcc.gnu.org jason@gcc.gnu.org
Thu Jul 2 17:28:00 GMT 2009


Author: jason
Date: Thu Jul  2 17:28:07 2009
New Revision: 149188

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=149188
Log:
	Use hash tables for template specialization lookup.
	* pt.c (struct spec_entry): New type.
	(decl_specializations, type_specializations): New hash tables.
	(register_specialization, retrieve_specialization): Use them.
	(reregister_specialization, lookup_template_class): Use them.
	(eq_specializations, hash_tmpl_and_args, hash_specialization): New.
	(iterative_hash_template_arg): New.
	(init_template_processing): New
	(process_partial_specialization): Don't look to see if we already
	have this partial specialization.
	(maybe_process_partial_specialization): Handle reassigning
	full specializations when we get an explicit specialization
	of the partial instantiation.
	(tsubst_friend_function): Adjust specialization reassignment code.
	(instantiate_template): Only do one lookup.
	(instantiate_decl): Don't do any lookup.
	* cp-tree.h: Declare init_template_processing.
	* decl.c (duplicate_decls): Pass args to reregister_specialization.

Modified:
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/cp-tree.h
    trunk/gcc/cp/decl.c
    trunk/gcc/cp/pt.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/g++.dg/template/spec8.C



More information about the Gcc-cvs mailing list