From 429f8106ec2d96dae1bef20302e99237b5aa37cf Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Thu, 30 Aug 2012 22:49:33 -0400 Subject: [PATCH] pt.c (instantiate_template_1): Keep processing_template_decl set if there are dependent args. * pt.c (instantiate_template_1): Keep processing_template_decl set if there are dependent args. From-SVN: r190825 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/pt.c | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 845f0b4..2eca678 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2012-08-30 Jason Merrill + + * pt.c (instantiate_template_1): Keep processing_template_decl set + if there are dependent args. + 2012-08-25 Paolo Carlini PR c++/51421 diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index f8ff1df..54d92df 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -14373,6 +14373,10 @@ instantiate_template_1 (tree tmpl, tree orig_args, tsubst_flags_t complain) /* Instantiation of the function happens in the context of the function template, not the context of the overload resolution we're doing. */ push_to_top_level (); + /* If there are dependent arguments, e.g. because we're doing partial + ordering, make sure processing_template_decl stays set. */ + if (uses_template_parms (targ_ptr)) + ++processing_template_decl; if (DECL_CLASS_SCOPE_P (gen_tmpl)) { tree ctx = tsubst (DECL_CONTEXT (gen_tmpl), targ_ptr, -- 2.7.4