diff options
author | Jason Merrill <jason@redhat.com> | 2016-05-31 15:49:22 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2016-05-31 15:49:22 -0400 |
commit | 8d857afc8652b9b55b315dd7d17f5706bf2050e4 (patch) | |
tree | 602e4b25e0427546299cdfa59707f9af0cfeb076 | |
parent | 1f032c533faf596b4627444a2a0f9f68f05f3ef0 (diff) | |
download | gcc-8d857afc8652b9b55b315dd7d17f5706bf2050e4.zip gcc-8d857afc8652b9b55b315dd7d17f5706bf2050e4.tar.gz gcc-8d857afc8652b9b55b315dd7d17f5706bf2050e4.tar.bz2 |
* pt.c (instantiate_decl): Avoid recalculation.
From-SVN: r236947
-rw-r--r-- | gcc/cp/ChangeLog | 2 | ||||
-rw-r--r-- | gcc/cp/pt.c | 10 |
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)) { |