Commit 701c0df1 by Jason Merrill Committed by Jason Merrill

pt.c (lookup_template_class): push_tinst_level around call to coerce_template_parms.

	* pt.c (lookup_template_class): push_tinst_level around call to
	coerce_template_parms.

From-SVN: r165974
parent 2c807128
2010-10-26 Jason Merrill <jason@redhat.com> 2010-10-26 Jason Merrill <jason@redhat.com>
* pt.c (lookup_template_class): push_tinst_level around call to
coerce_template_parms.
* tree.c (stabilize_expr): Handle xvalues properly. * tree.c (stabilize_expr): Handle xvalues properly.
* call.c (build_over_call): Use argarray[0] for 'this' argument. * call.c (build_over_call): Use argarray[0] for 'this' argument.
......
...@@ -6595,13 +6595,17 @@ lookup_template_class (tree d1, ...@@ -6595,13 +6595,17 @@ lookup_template_class (tree d1,
arglist = bound_args; arglist = bound_args;
} }
else else
arglist {
= coerce_template_parms (INNERMOST_TEMPLATE_PARMS (parmlist), push_tinst_level (templ);
INNERMOST_TEMPLATE_ARGS (arglist), arglist
gen_tmpl, = coerce_template_parms (INNERMOST_TEMPLATE_PARMS (parmlist),
complain, INNERMOST_TEMPLATE_ARGS (arglist),
/*require_all_args=*/true, gen_tmpl,
/*use_default_args=*/true); complain,
/*require_all_args=*/true,
/*use_default_args=*/true);
pop_tinst_level ();
}
if (arglist == error_mark_node) if (arglist == error_mark_node)
/* We were unable to bind the arguments. */ /* We were unable to bind the arguments. */
......
2010-10-26 Jason Merrill <jason@redhat.com>
* g++.dg/template/arg8.C: Test for helpful diagnostic.
2010-10-26 Janus Weil <janus@gcc.gnu.org> 2010-10-26 Janus Weil <janus@gcc.gnu.org>
PR fortran/42647 PR fortran/42647
......
// Test for a message indicating what template we're trying to convert
// arguments for. We can't actually test for it directly because it
// doesn't have an associated line number, but we can test for the
// "instantiated from here" message that follows.
template <int I>
struct A { };
int i;
A<i> a; // { dg-message "instantiated from here" }
// { dg-error "not a valid template argument" "" { target *-*-* } 10 }
// { dg-error "invalid type in declaration" "" { target *-*-* } 10 }
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