• mmitchel's avatar
    * cp-tree.h (scope_kind): New type. · 3467e461
    mmitchel authored
    	(tmpl_spec_kind): Likewise.
    	(declare_pseudo_global_level): Remove.
    	(pseudo_global_level_p): Rename to template_parm_scope_p.
    	(pushlevel): Remove declaration.
    	(begin_scope): New function.
    	(finish_scope): Likewise.
    	(current_tmpl_spec_kind): Likewise.
    	* decl.c (struct binding_level): Shorten parm_flag to 2 bits.
    	Shorten keep to 2 bits.  Rename pseudo_global to template_parms_p.
    	Add template_spec_p.
    	(toplevel_bindings_p): Adjust.
    	(declare_pseudo_global_level): Remove.
    	(pseudo_global_level_p): Rename to template_parm_scope_p.
    	(current_tmpl_spec_kind): New function.
    	(begin_scope): Likewise.
    	(finish_scope): Likewise.
    	(maybe_push_to_top_level): Adjust.
    	(maybe_process_template_type_declaration): Likewise.
    	(pushtag): Likewise.
    	(pushdecl_nonclass_level): Likewise.
    	(lookup_tag): Likewise.
    	(grokfndecl): Handle member template specializations.  Share
    	constructor and non-constructor code.
    	* decl2.c (check_classfn): Handle member template specializations.
    	* pt.c (begin_template_parm_list): Use begin_scope.
    	(begin_specialization): Likewise.
    	(end_specialization): Likewise.
    	(check_explicit_specialization): Use current_tmpl_spec_kind.
    	Handle member template specializations.
    	(end_template_decl): Use finish_scope.  Remove call to
    	get_pending_sizes.
    	(push_template_decl_real): Remove bogus error message.
    	(tsubst_decl): Fix typo in code contained in comment.
    	(instantiate_template): Handle member template specializations.
    	(most_general_template): Likewise.
    
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32494 138bc75d-0d04-0410-961f-82ee72b054a4
    3467e461
pt.c 289 KB