Hi,

while looking into a few small issues I noticed that we could use C++ defaults here too. Tested x86_64-linux.

Thanks,
Paolo.

///////////////////
Index: cp-tree.h
===================================================================
--- cp-tree.h   (revision 231672)
+++ cp-tree.h   (working copy)
@@ -6115,7 +6115,8 @@ extern int template_class_depth                   (tree);
 extern int is_specialization_of                        (tree, tree);
 extern bool is_specialization_of_friend                (tree, tree);
 extern tree get_pattern_parm                   (tree, tree);
-extern int comp_template_args                  (tree, tree);
+extern int comp_template_args                  (tree, tree, tree * = NULL,
+                                                tree * = NULL);
 extern tree maybe_process_partial_specialization (tree);
 extern tree most_specialized_instantiation     (tree);
 extern void print_candidates                   (tree);
Index: pt.c
===================================================================
--- pt.c        (revision 231672)
+++ pt.c        (working copy)
@@ -7881,9 +7881,9 @@ template_args_equal (tree ot, tree nt)
    template arguments.  Returns 0 otherwise, and updates OLDARG_PTR and
    NEWARG_PTR with the offending arguments if they are non-NULL.  */
 
-static int
-comp_template_args_with_info (tree oldargs, tree newargs,
-                             tree *oldarg_ptr, tree *newarg_ptr)
+int
+comp_template_args (tree oldargs, tree newargs,
+                   tree *oldarg_ptr, tree *newarg_ptr)
 {
   int i;
 
@@ -7913,15 +7913,6 @@ template_args_equal (tree ot, tree nt)
   return 1;
 }
 
-/* Returns 1 iff the OLDARGS and NEWARGS are in fact identical sets
-   of template arguments.  Returns 0 otherwise.  */
-
-int
-comp_template_args (tree oldargs, tree newargs)
-{
-  return comp_template_args_with_info (oldargs, newargs, NULL, NULL);
-}
-
 static void
 add_pending_template (tree d)
 {
@@ -19048,8 +19039,8 @@ unify_pack_expansion (tree tparms, tree targs, tre
          tree bad_old_arg = NULL_TREE, bad_new_arg = NULL_TREE;
          tree old_args = ARGUMENT_PACK_ARGS (old_pack);
 
-         if (!comp_template_args_with_info (old_args, new_args,
-                                            &bad_old_arg, &bad_new_arg))
+         if (!comp_template_args (old_args, new_args,
+                                  &bad_old_arg, &bad_new_arg))
            /* Inconsistent unification of this parameter pack.  */
            return unify_parameter_pack_inconsistent (explain_p,
                                                      bad_old_arg,
2015-12-16  Paolo Carlini  <paolo.carl...@oracle.com>

        * pt.c (comp_template_args): Remove.
        (comp_template_args_with_info): Rename to comp_template_args;
        not static.
        (add_pending_template): Adjust call.
        * cp-tree.h (comp_template_args): Add default arguments.

Reply via email to