Commit d7c4edd0 by Nathan Sidwell Committed by Nathan Sidwell

pt.c (type_unification_real): Replace switch with if.

	* pt.c (type_unification_real): Replace switch with if.
	(unify): Tsubst non-type parms before comparing.

From-SVN: r36195
parent 2ff0c962
2000-09-06 Nathan Sidwell <nathan@codesourcery.com>
* pt.c (type_unification_real): Replace switch with if.
(unify): Tsubst non-type parms before comparing.
2000-09-06 Nathan Sidwell <nathan@codesourcery.com>
* error.c (dump_typename): New function, broken out of ...
(dump_type): ... here. Use it.
* typeck.c (same_type_p): Use cp_tree_equal for TYPENAME_TYPE.
......
......@@ -7830,14 +7830,9 @@ type_unification_real (tparms, targs, parms, args, subr,
if (!subr)
maybe_adjust_types_for_deduction (strict, &parm, &arg);
switch (unify (tparms, targs, parm, arg, sub_strict))
{
case 0:
break;
case 1:
if (unify (tparms, targs, parm, arg, sub_strict))
return 1;
}
}
/* Fail if we've reached the end of the parm list, and more args
are present, and the parm list isn't variadic. */
if (args && args != void_list_node && parms == void_list_node)
......@@ -8450,8 +8445,10 @@ unify (tparms, targs, parm, arg, strict)
parameter-list and, if the corresponding template-argument is
deduced, the template-argument type shall match the type of the
template-parameter exactly, except that a template-argument
deduced from an array bound may be of any integral type. */
if (same_type_p (TREE_TYPE (arg), TREE_TYPE (parm)))
deduced from an array bound may be of any integral type.
The non-type parameter might use already deduced type parameters. */
if (same_type_p (TREE_TYPE (arg),
tsubst (TREE_TYPE (parm), targs, 0, NULL_TREE)))
/* OK */;
else if ((strict & UNIFY_ALLOW_INTEGER)
&& (TREE_CODE (TREE_TYPE (parm)) == INTEGER_TYPE
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment