]> git.ipfire.org Git - thirdparty/gcc.git/commit
call.c (add_template_candidate): Adjust for changes to fn_type_unification.
authorMark Mitchell <mmitchell@usa.net>
Mon, 11 May 1998 07:25:25 +0000 (07:25 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Mon, 11 May 1998 07:25:25 +0000 (07:25 +0000)
commit830bfa74b082c1cd0d5550ee4f0f4364f46f1a0a
tree3eb441453df3706bae901aecf80a665eda32abc2
parent89ad74a33f27c5d1415f86c8331ba8295f6a091f
call.c (add_template_candidate): Adjust for changes to fn_type_unification.

* call.c (add_template_candidate): Adjust for changes to
fn_type_unification.
(add_template_candidate_real): Likewise.
(add_template_conv_candidate): Likewise.
(build_user_type_conversion_1): Likewise.
(build_new_function_call): Likewise.
(build_object_call): Likewise.
(build_new_op): Likewise.
(build_new_method_call): Likewise.
* class.c (instantiate_type): Likewise.
* cp-tree.h (unification_kind_t): New type.
(fn_type_unification): Adjust prototype.
(type_unificaiton): Likewise.
* pt.c (UNIFY_ALLOW_NONE): New macro.
(UNIFY_ALLOW_MORE_CV_QUAL): Likewise.
(UNIFY_ALLOW_LESS_CV_QUAL): Likewise.
(UNIFY_ALLOW_DERIVED): Likewise.
(unify): Change prototype.
(maybe_adjust_types_for_deduction): New function.
(check_cv_quals_for_unify): Likewise.
(determine_specialization): Adjust.
(fn_type_unification): Likewise.
(type_unification): Likewise.
(type_unification_real): Likewise.  Use
maybe_adjust_types_for_deduction.  Fix mishandling of
back-unification of template functions passed as arguments.  Pass
appropriate combination of UNIFY_ALLOW_* to unify.
(unify): Remove unused NTPARMS parameter.  Use
check_cv_quals_for_unify.  Remove bogus code that allowed
too-generous unification in order to adhere more closely to standard.
(get_bindings_real): Adjust.
(get_class_bindings): Likewise.
* method.c (build_overload_identifier): Only use the innermost
template arguments when mangling.
* pt.c (tsubst_template_argument_vector): New function.
(complete_template_args): Deal with the situation where the
extra_args contain more than one level of arguments.
(lookup_template_class): Deal with member template classes, which
may have more than one level of arguments.
(tsubst): Don't tsbust into the TREE_TYPE of an IDENTIFIER_NODE.
Improve handling of member template classes.  Use
DECL_PRIMARY_TEMPLATE instead of inline expansion.  Use
tsubst_template_argument_vector where appropriate.
(regenerate_decl_from_template): Break out from ...
(instantiate_decl): Here.

From-SVN: r19663
gcc/cp/ChangeLog
gcc/cp/call.c
gcc/cp/class.c
gcc/cp/cp-tree.h
gcc/cp/method.c
gcc/cp/pt.c
gcc/testsuite/g++.old-deja/g++.pt/conv1.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.pt/memclass9.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.pt/unify3.C [new file with mode: 0644]