Lines Matching defs:unify
148 static int unify (tree, tree, tree, tree, int, bool);
7767 /* Subroutine of unify for the case when PARM is a
7789 if (unify (tparms, targs, nparmvec, argvec,
7830 if (unify (tparms, targs,
7913 if (!unify (arg_parms, targs, aargs, pargs, UNIFY_ALLOW_NONE,
15473 unify. This means that we don't yet have any information
21963 return unify (tparms, targs, parm, arg, arg_strict, explain_p);
21991 unify (tparms, targs, TREE_TYPE (max), size_type_node,
22000 an array bound. This is handled separately from unify because 14.8.2.5 says
22015 If SUBR is 1, we're being called recursively (to unify the
22358 the affected templates before we try to unify, in case the
22503 the affected templates before we try to unify, in case the
22625 some template args from previous args, unify would complain when we
22631 if (unify (tparms, tempargs, parm, arg, sub_strict, explain_p))
22689 TARGS are as for unify. */
22706 unify. If we used TARGS, we'd clutter it up with the result of
22732 because there are two ways to unify base classes of S<0, 1, 2>
22745 if (unify (tparms, copy_of_targs, CLASSTYPE_TI_ARGS (parm),
22757 by unify. */
22828 cv-qualifiers of each type, given STRICT as documented for unify.
22842 does not allow us to unify "const T" with "int&" because both
22887 if (unify (TP, TA, P, A, S, EP)) \
22944 unified and unify each with the pattern. */
23092 parameters and return value are as for unify. */
23106 not an integer constant. We cannot unify arbitrarily
23121 trying to unify the type of a variable with the type
23152 return unify (tparms, targs, parm_max, arg_max,
23156 /* Returns whether T, a P or A in unify, is a type, template or expression. */
23217 unify (tree tparms, tree targs, tree parm, tree arg, int strict,
23338 /* Immediately reject some pairs that won't unify because of
23347 parameters below. We want to allow ARG `const T' to unify with
23381 /* The PARM is not one we're trying to unify. Just check
23487 /* If ARG is a parameter pack or an expansion, we cannot unify
23511 /* The PARM is not one we're trying to unify. Just check
23597 /* If ARG is a parameter pack or an expansion, we cannot unify
23617 /* Just unify the class member. It would be useless (and possibly
23618 wrong, depending on the strict flags) to unify also
23627 return unify (tparms, targs, PTRMEM_CST_MEMBER (parm),
23651 return unify (tparms, targs, TREE_TYPE (parm),
23658 return unify (tparms, targs, TREE_TYPE (parm), TREE_TYPE (arg),
23723 /* We can unify against something with a trailing
23738 a pack expression, we can't unify. */
23770 return unify (tparms, targs,
23784 /* First, we try to unify the PARM and ARG directly. */
23820 Then, we should unify `int' and `U'. */
23826 return unify (tparms, targs, CLASSTYPE_TI_ARGS (parm),
23910 return unify (tparms, targs, TREE_TYPE (parm), fntype, strict, explain_p);
23918 return unify (tparms, targs, TREE_TYPE (parm), TREE_TYPE (arg),
23923 return unify (tparms, targs, DECL_INITIAL (parm), arg, strict, explain_p);
23951 return unify (tparms, targs, ARGUMENT_PACK_ARGS (parm),
23975 return unify (tparms, targs, TREE_OPERAND (parm, 0), arg,
24226 unify the patterns themselves. */
24311 deduce1 = (unify (tparms1, targs1, arg1, arg2,
24314 deduce2 = (unify (tparms2, targs2, arg2, arg1,
24585 if (unify (tparms, deduced_args,
24621 `T' is `A' but unify () does not check whether `typename T::X'
28660 int err = unify (tparms, targs, type, etype,
28810 int err = unify (ftparms, targs, ret, utype, UNIFY_ALLOW_NONE, false);
28883 int err = unify (atparms, targs, utype, ret, UNIFY_ALLOW_NONE, false);