r200378 - in /branches/c++-concepts: ChangeLog....

asutton@gcc.gnu.org asutton@gcc.gnu.org
Mon Jun 24 19:58:00 GMT 2013


Author: asutton
Date: Mon Jun 24 19:58:08 2013
New Revision: 200378

URL: http://gcc.gnu.org/viewcvs?rev=200378&root=gcc&view=rev
Log:
2013-06-24  Andrew Sutton  <andrew.n.sutton@gmail.com>
	* gcc/cp/cp-tree.h (tree_template_info). Remove constraint from 
	template info.
	(check_template_info): Removed (unused).
	(TI_CONSTRAINT): Removed (no longer needed) along with related macros.
	(DECL_CONSTRAINTS): New. Get constraints from DECL_SIZE_UNIT for 
	template decls.
	(build_template_info): Removed overload taking constraints.
	(get_constraints): Removed (no longer needed).
	* gcc/cp/class.c (are_constrained_member_overlaods): Allow constrained 
	member function templates to be differentiated as overloads.
	* gcc/cp/decl.c (decls_match): Only compare constraints on 
	declarations.
	(grokfndecl): Don't pass constraints to build_template_info.
	* gcc/cp/tree.c (bind_template_template_parm): Don't pass constraints 
	to build_template_info.
	* gcc/cp/pt.c (build_template_info): Removed overload taking 
	constraints.
	(check_explicit_specialization): Don't build new constraints for 
	template info.
	(build_template_decl): Pass constraints. Update docs.
	(process_partial_specialization): Stub out support for constrained
	partial specialiations.
	(push_template_decl_real): Build template decls with current template 
	reqs. Don't pass constraints to build_template_info.
	(add_inherited_template_parms): Build new constraints from inherited
	template constructors.
	(redeclare_class_template): Update to new constraint interface.
	(is_compatible_template_arg): Update to new constraint interface.
	(lookup_template_class_1): Don't build new constraints or pass them to
	build_template_info.
	(instantiate_class_template_1): Update to new constraints interface.
	(tsubst_decl): Don't build new constraints or pass them to
	build_template_info. For function templates, explicitly instantiate
	new constraints for member functions of class templates.
	* gcc/cp/semantics.c: Associate constraints with template template 
	parms directly, not through template info.
	* gcc/cp/constraint.cc (get_constraints): Simplified to use new constraints
	interface.
	(check_constraints): Update to use new constraints interface.
	(equivalently_constrained): Update to use new constraints interface.
	(more_constrained): Update to use new constraints interface.
	* gcc/cp/parser.cpp (cp_parser_late_parsing_for_member): Update to use 
	new constraints interface.
	* gcc/cp/call.c (is_non_template_member_fn): New.
	(add_function_candidate): Only check constraints for non-template member
	functions.

Modified:
    branches/c++-concepts/ChangeLog.concepts
    branches/c++-concepts/gcc/cp/call.c
    branches/c++-concepts/gcc/cp/class.c
    branches/c++-concepts/gcc/cp/constraint.cc
    branches/c++-concepts/gcc/cp/cp-tree.h
    branches/c++-concepts/gcc/cp/cxx-pretty-print.c
    branches/c++-concepts/gcc/cp/decl.c
    branches/c++-concepts/gcc/cp/parser.c
    branches/c++-concepts/gcc/cp/pt.c
    branches/c++-concepts/gcc/cp/semantics.c
    branches/c++-concepts/gcc/cp/tree.c



More information about the Gcc-cvs mailing list