]> gcc.gnu.org Git - gcc.git/blobdiff - gcc/cp/pt.cc
c++: constraint rewriting during ttp coercion [PR111485]
[gcc.git] / gcc / cp / pt.cc
index bf2dbd681ac603c620520cc400c8c185e4445dcb..174567fc1ec48e24006c01e7d4440f1ef8a984ab 100644 (file)
@@ -8334,7 +8334,7 @@ canonicalize_expr_argument (tree arg, tsubst_flags_t complain)
    constrained than the parameter.  */
 
 static bool
-is_compatible_template_arg (tree parm, tree arg)
+is_compatible_template_arg (tree parm, tree arg, tree args)
 {
   tree parm_cons = get_constraints (parm);
 
@@ -8355,6 +8355,7 @@ is_compatible_template_arg (tree parm, tree arg)
     {
       tree aparms = DECL_INNERMOST_TEMPLATE_PARMS (arg);
       new_args = template_parms_level_to_args (aparms);
+      new_args = add_to_template_args (args, new_args);
       ++processing_template_decl;
       parm_cons = tsubst_constraint_info (parm_cons, new_args,
                                          tf_none, NULL_TREE);
@@ -8609,7 +8610,7 @@ convert_template_argument (tree parm,
               // Check that the constraints are compatible before allowing the
               // substitution.
               if (val != error_mark_node)
-                if (!is_compatible_template_arg (parm, arg))
+               if (!is_compatible_template_arg (parm, arg, args))
                   {
                    if (in_decl && (complain & tf_error))
                       {
This page took 0.051277 seconds and 5 git commands to generate.