summaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2010-10-26 17:57:30 +0000
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2010-10-26 17:57:30 +0000
commit1635a265edeb1b438edc83feb96e5fe48a171319 (patch)
treee02a5250ffd8b2f136a3be9cd41f0d7b11bb7faa /gcc/cp
parent2bf70a2aedfa6609011dd8358c173233b88d58b0 (diff)
downloadgcc-1635a265edeb1b438edc83feb96e5fe48a171319.tar.gz
* pt.c (lookup_template_class): push_tinst_level around call to
coerce_template_parms. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@165974 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp')
-rw-r--r--gcc/cp/ChangeLog3
-rw-r--r--gcc/cp/pt.c18
2 files changed, 14 insertions, 7 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index e4e6446ed52..1ec3c639554 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,8 @@
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.
* call.c (build_over_call): Use argarray[0] for 'this' argument.
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 1de5d5527fd..f150d8f6130 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -6595,13 +6595,17 @@ lookup_template_class (tree d1,
arglist = bound_args;
}
else
- arglist
- = coerce_template_parms (INNERMOST_TEMPLATE_PARMS (parmlist),
- INNERMOST_TEMPLATE_ARGS (arglist),
- gen_tmpl,
- complain,
- /*require_all_args=*/true,
- /*use_default_args=*/true);
+ {
+ push_tinst_level (templ);
+ arglist
+ = coerce_template_parms (INNERMOST_TEMPLATE_PARMS (parmlist),
+ INNERMOST_TEMPLATE_ARGS (arglist),
+ gen_tmpl,
+ complain,
+ /*require_all_args=*/true,
+ /*use_default_args=*/true);
+ pop_tinst_level ();
+ }
if (arglist == error_mark_node)
/* We were unable to bind the arguments. */