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
This commit is contained in:
parent
2ff0c96233
commit
d7c4edd08e
2 changed files with 11 additions and 9 deletions
|
@ -1,3 +1,8 @@
|
|||
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 ...
|
||||
|
|
15
gcc/cp/pt.c
15
gcc/cp/pt.c
|
@ -7830,13 +7830,8 @@ 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:
|
||||
return 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. */
|
||||
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue