aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2016-05-31 15:49:22 -0400
committerJason Merrill <jason@gcc.gnu.org>2016-05-31 15:49:22 -0400
commit8d857afc8652b9b55b315dd7d17f5706bf2050e4 (patch)
tree602e4b25e0427546299cdfa59707f9af0cfeb076
parent1f032c533faf596b4627444a2a0f9f68f05f3ef0 (diff)
downloadgcc-8d857afc8652b9b55b315dd7d17f5706bf2050e4.zip
gcc-8d857afc8652b9b55b315dd7d17f5706bf2050e4.tar.gz
gcc-8d857afc8652b9b55b315dd7d17f5706bf2050e4.tar.bz2
* pt.c (instantiate_decl): Avoid recalculation.
From-SVN: r236947
-rw-r--r--gcc/cp/ChangeLog2
-rw-r--r--gcc/cp/pt.c10
2 files changed, 6 insertions, 6 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index dabf2ec..2850334 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,7 @@
2016-05-31 Jason Merrill <jason@redhat.com>
+ * pt.c (instantiate_decl): Avoid recalculation.
+
PR c++/60095
PR c++/69515
PR c++/69009
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index b25cd13..64fef68 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -21971,7 +21971,6 @@ instantiate_decl (tree d, int defer_ok,
else if (TREE_CODE (d) == FUNCTION_DECL)
{
hash_map<tree, tree> *saved_local_specializations;
- tree subst_decl;
tree tmpl_parm;
tree spec_parm;
tree block = NULL_TREE;
@@ -21994,18 +21993,17 @@ instantiate_decl (tree d, int defer_ok,
access checked at template instantiation time, i.e now. These
types were added to the template at parsing time. Let's get those
and perform the access checks then. */
- perform_typedefs_access_check (DECL_TEMPLATE_RESULT (gen_tmpl),
- gen_args);
+ perform_typedefs_access_check (DECL_TEMPLATE_RESULT (td),
+ args);
/* Create substitution entries for the parameters. */
- subst_decl = DECL_TEMPLATE_RESULT (template_for_substitution (d));
- tmpl_parm = DECL_ARGUMENTS (subst_decl);
+ tmpl_parm = DECL_ARGUMENTS (code_pattern);
spec_parm = DECL_ARGUMENTS (d);
if (DECL_NONSTATIC_MEMBER_FUNCTION_P (d))
{
register_local_specialization (spec_parm, tmpl_parm);
spec_parm = skip_artificial_parms_for (d, spec_parm);
- tmpl_parm = skip_artificial_parms_for (subst_decl, tmpl_parm);
+ tmpl_parm = skip_artificial_parms_for (code_pattern, tmpl_parm);
}
for (; tmpl_parm; tmpl_parm = DECL_CHAIN (tmpl_parm))
{